问题标签 [android-ble]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android BLE 一次连接到多个设备
我已经看到很多关于如何有目的地连接到多个设备的问题。但在我的情况下,我只尝试连接到一个硬件设备。
我有两个硬件设备应该做同样的事情。当他们通过 BLE 连接到我的应用程序时,他们的 LED 会变成纯色。当我只打开一个设备时,这一切都很好。但是,当我打开两台设备然后尝试仅连接一台时。两个设备的 LED 都变为常亮。尽管我似乎没有从我不打算连接的数据中获取任何传入数据。
我不认为这是设备的错。因为我在 iOS 上没有这个问题。我认为手机可能会在某个地方记住以前连接的设备?
对不起,这是很多代码。但我觉得这门课很重要。任何帮助深表感谢。
更新
我正在玩银河平板电脑,但无法重现该问题。所以我认为这取决于设备。问题出现在 Galaxy S3 上,我正在尝试收集其他一些设备进行测试。
此外,我能够接触到一些新设备,并且似乎如果该设备以前从未连接到手机(原始设备),那么该设备不会混淆并认为它没有连接。所以我们会在搜索时看到它,但它从不认为我正在连接到它,直到我真正连接到它。在那之后,有一半的时间它认为我正在尝试与它交谈,而我却不是。我希望这是有道理的。这支持了手机以某种方式缓存旧设备的理论。我尝试卸载该应用程序并重新安装它以查看它是否与使用原始设备具有相同的效果,但似乎该应用程序与它无关。即使我重新安装了该应用程序,该设备在被引入手机后仍会连接(当它不应该连接时)。
android-ble - android ble广告间隔变化
自 Android 5.0 开始支持允许应用广播广告的外围设备。在我的应用案例中,我需要每 20 毫秒到 30 毫秒广播一次,但无论如何我都找不到更改广告间隔。并且默认的广告间隔在 20ms 到 600ms 之间,在我的情况下完全不能接受。
android - Android:BLE 设备发送数据包时间很慢,一次最多只能获取 20 个字节
我正在开发健康应用程序,所以使用 BLE 设备(硬件)。
- 从 BLE 设备一个数据包发送 25 个字节,但在移动(Android)端我们收到 20 个字节。(我参考这个链接)
- 当接收到每个数据包时,向 BLE 设备发送确认。但是我们这个过程很慢。而且我们无法在特定时间收到数据包。
- 我们需要 500 个数据包在 1 秒内。但在 1 秒内只能获得 10 个数据包。
- 主要问题是没有按照要求获取数据包。
所以请告诉我BLE发送数据包的速度是否符合我的要求,或者如果不是那么我再次使用蓝牙?
请建议我教程以更快地从 BLE 获取数据
android - Android BLE - 如何节省电池 lfie
我的客户想要一个基本上一直使用所有这些的应用程序,即在后台服务中: - 网络/wifi - 定位服务 - BLE 扫描
这意味着这对电池寿命有很大影响。根据我的测量,它可以通过这种方式每小时降低 10% 以上的电池电量。
降低能耗的最佳方法是什么?三种服务中哪一种会消耗最多的电量?仅当用户位置发生显着变化(可能在旅行时发生)时,位置服务才会更新,并且在后台持续进行客户端-服务器通信。
整个想法是BLE不断扫描。处理这种情况的最佳方法是什么?
android - 如何使用蓝牙低功耗服务?
想要构建一个只能与支持 BLE 的设备通信的聊天应用程序。如何初始化 BLE 服务以及如何与设备配对以接收消息。
android - Android 4.4 BLE 扫描缺乏稳定性
蓝牙 LE Jedi 是否知道如何在廉价的 Android 4.4 设备上获得可靠的 BLE 扫描模式?
从 Android 5 到 6,以及大多数 Android 4.4 手机,一切正常......但是,在一些 4.4 的廉价手机上,我们会遇到随机问题,有些手机没有检测到任何东西,或者有时只有几个信标,具体取决于环境,白天,天气或其他任何东西......这显然是由于这方面的软件或硬件不佳,但是有没有什么技巧可以让它在编程上更稳定?(例如定期启用/禁用蓝牙)
编辑
描述一个典型的行为:
首先,请注意,我可以测试的所有扫描应用程序(Estimote、Kontakt.io、AltBeacon 等)的行为完全相同 - 所以这很可能与应用程序实现无关。
它仅出现在 Android 5(4.4.2、4.4.3、4.4.4)以下和廉价设备上,例如三星 S5 之类的手机上绝不会出现。
行为:假设我们有 5 个非常接近的信标(小于 2 米,一切正常)。- 重新启动后,手机会在 1 或 2 分钟内找到 5 个信标。- 然后它在 5 分钟内什么也没找到。- 刷新后发现 2 个信标。- 再次刷新扫描:仅找到 1 个。然后没有...等等。
我找不到任何逻辑,现在它看起来不稳定。启用/禁用 Wifi / 蓝牙、蓝牙 + Wifi、Wifi 然后蓝牙等有时会使扫描找到更多的信标,有时不会……如果我只是等待而不更改这些参数,可能没有太大区别。
恢复可靠扫描的唯一方法是重新启动设备......然后它只能再次工作 1 或 2 分钟......
它出现在一些非常不同的设备上(Wiko Sunset、Samsung XCover、Orange Roya)。
在较新的设备(Nexus 6、Samsung S5、Samsung A4...)上,100% 的信标在数小时内被检测到,并且从未丢失。
因此,由于完全重新启动实际上是检测到所有信标的最佳解决方案,我想知道是否有一种方法可以“刷新”设备的蓝牙模块而不重新启动它......或者我们是否只需要成为一个哲学家; -)
android - 安卓 BLE 写入数据
我目前正在开发 android 应用程序,我想将 BLE 应用程序添加到我的应用程序中,也就是说,我想将数据发送到 nrf51822/8001。
请给我一个简单的例子。
谢谢你。
android - 不支持 Android BLE 错误 0x06 请求
我的应用程序在连接到 BLE 设备时遇到问题。在应用程序进行的每次连接尝试中,它都会在 OnConnectionStateChange() 方法中获得错误代码 0x0006(不支持请求)。我已尝试关闭/打开蓝牙,但仍然出现相同的错误。
我在 LG D410(Android 5.0.2)中遇到了这个问题。在我将 LG 手机升级到 5.0.2 后,应用开始出现此错误。我的应用在三星 Galaxy S4(Android 5.1)、Nexus 5(Android 6.0)上运行良好。
为什么我会收到此错误?可以做些什么来修复它?
以下是错误日志:
02-26 05:30:53.919 D/MyBluetoothClass-1392940(21607): trying to connect with address: 78:A5:04:86:D4:16
02-26 05:30:53.944 D/MyBluetoothClass-1392940(21607): Create a new GATT connection.
02-26 05:30:53.945 D/BluetoothGatt(21607): connect() - device: 78:A5:04:86:D4:16, auto: true
02-26 05:30:53.945 D/BluetoothGatt(21607): registerApp()
02-26 05:30:53.945 D/BluetoothGatt(21607): registerApp() - UUID=a81c9b62-f822-4e42-9af0-752a8eab82a1
02-26 05:30:53.947 D/BluetoothGatt(21607): onClientRegistered() - status=0 clientIf=5
02-26 05:30:53.947 D/MyBluetoothClass-1392940(21607): Connection attempt started; results reported asynchronously
02-26 05:30:53.947 D/BluetoothGatt(21607): refresh() - device: 78:A5:04:86:D4:16
02-26 05:30:53.950 D/BluetoothGatt(21607): onClientConnectionState() - status=6 clientIf=5 device=78:A5:04:86:D4:16
02-26 05:30:53.951 D/MyBTGattCallback(21607): onConnectionStateChange, newState: 0
02-26 05:30:53.951 E/MyBTGattCallback(21607): onConnectionStateChange status 0006 desc Req not supported