相关疑难解决方法(0)

芯片组/设备支持Android 5 BLE外设模式

**目前已知设备概述:Nexus 6,Nexus 9,Moto E 4G LTE,LG G4,Galaxy S6,三星Galaxy S5(型号SM-G900M),Nexus 5X,索尼Xperia Z5 Compact,三星Galaxy Tab S2**

**另见https://altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html**

Android 5版本的新功能之一是支持蓝牙低功耗外设模式.虽然它被提升为独立于所使用的设备而工作,但它似乎依赖于芯片组(参见BluetoothAdapter.java中的isMultiAdvertisementSupported()函数).

它适用于Nexus 5,但不适用于Nexus 7(称为BLE外设支持Android-L示例中的错误,但由于其芯片组可能无法正常工作?).此外,https://code.google.com/p/android-developer-preview/issues/detail?id = 589也未给出结论性陈述.

我担心的是,由于许多旧设备预计将获得Android 5,只有最新的平板电脑(以及相对较新的手机)将支持BLE外设模式.对于依赖此新Android 5功能的应用的最终用户而言,这可能不明确.

对我而言,目前尚不清楚最终将获得Android 5的哪些芯片组/设备将支持BLE外设模式.谁可以给我任何见解?哪些芯片组支持BLE外设模式?更具体地说,由于我们的许多客户都拥有Nexus 7(2013),Nexus 7是否会得到支持?

编辑19-2-2015: 自2014年12月起,Nexus 5不再支持,只有Nexus 6和9似乎支持BLE外围模式/广告.希望支持这一功能的设备数量在不久的将来会大幅增加.

有关详细信息和讨论,请访问:https: //code.google.com/p/android-developer-preview/issues/detail?id = 1570

编辑6-3-2015:添加了快速参考概述

编辑17-2-2016:添加了一些我自己检查但不在任何其他列表中的设备

bluetooth-lowenergy android-5.0-lollipop

37
推荐指数
1
解决办法
2万
查看次数

扫描大量BLE标签

我正在寻找在单次扫描中扫描大量BLE标签(StickNFind)的可能性.我注意到,当我扫描10秒钟时,我可以轻松地检测到大约20个BLE.当我将扫描间隔增加到大约30秒并尝试扫描大量BLE标签(例如200个标签)时,我在LogCat中看到有关缓冲区溢出(GKI_exception)的错误.这个问题发生在核心Android库的某个地方,我无法调试.附加了确切的错误日志.

11-27 11:39:30.542: D/dalvikvm(1017): GC_CONCURRENT freed 412K, 8% free 9039K/9760K, paused 1ms+1ms, total 16ms
11-27 11:39:30.552: D/BtGatt.GattService(1017): onScanResult() - address=E8:C6:AD:6F:BC:22, rssi=-76
11-27 11:39:30.552: D/BtGatt.btif(1017): btif_gattc_upstreams_evt: Event 4096
11-27 11:39:30.552: D/BtGatt.btif(1017): btif_gattc_add_remote_bdaddr device overwrite idx=10
11-27 11:39:30.552: D/BtGatt.btif(1017): btif_gattc_update_properties BLE device name=n96 len=3 dev_type=2
11-27 11:39:30.552: D/btif_config_util(1017): btif_config_save_file(L153): in file name:/data/misc/bluedroid/bt_config.new
11-27 11:39:30.562: I/bt-hci(1017): BLE HCI(id=62) event = 0x02)
11-27 11:39:30.562: I/bt-hci(1017): btu_ble_process_adv_pkt
11-27 11:39:30.562: I/bt-hci(1017): BLE HCI(id=62) event = 0x02)
11-27 11:39:30.562: I/bt-hci(1017): btu_ble_process_adv_pkt
11-27 11:39:30.592: I/bt-hci(1017): BLE HCI(id=62) event …
Run Code Online (Sandbox Code Playgroud)

bluetooth-lowenergy android-bluetooth

6
推荐指数
1
解决办法
2574
查看次数

蓝牙 (BLE) bluetoothLeAdvertiser.startAdvertising 抛出错误代码 2 (ADVERTISE_FAILED_TOO_MANY_ADVERTISERS)

我有一台支持 BLE 广告的三星 SM-G950F ,但在播放了一些广告后,它开始抛出错误代码 2 (ADVERTISE_FAILED_TOO_MANY_ADVERTISERS),其中 Android 文档显示“无法启动广告,因为没有可用的广告实例”。而让它再次工作一段时间的唯一方法就是重新启动设备。另一种设备 HTC 10 也有类似的问题,它一开始工作得很好,最终慢慢地每 10 或 20 次传输中丢失 1 次,但很快就会降级到每 50 次发送 1 次。最后,设备需要重新启动使应用程序再次运行。

我的用例如下:

  1. 调用 bluetoothLeAdvertiser.startAdvertising(...)
  2. 每 300 毫秒调用该方法大约 100 次(在某个点之前工作正常)
  3. 然后在某一时刻 AdvertiseCallback onStartFailure(int errorCode) 开始被调用并返回错误代码 2
  4. 重新启动手机(关闭蓝牙并返回或关闭应用程序无法解决问题)
  5. 重复这个过程

这是三星 S8 设备特有的问题还是我的实施方式有问题?有没有办法以编程方式清除/重置广告商?

此外,如果您知道任何其他设备存在类似问题,最好能分享一下以帮助其他人了解它们。

注意: 相同的代码在运行 android 6.0.1 的 Samsung S5 SM-G900F 上运行良好

代码片段

public void startAdvertising() {
    // making sure that the advertiser object was initialised, it is null if the user opened the app
    // without having …
Run Code Online (Sandbox Code Playgroud)

java android samsung-mobile bluetooth-lowenergy samsung-galaxy

5
推荐指数
1
解决办法
2045
查看次数