Android BLE Beacon扫描

Sve*_*ges 14 android bluetooth ibeacon-android

Android 4.3中添加了蓝牙LE,但似乎没有后台扫描模式,一旦注册通过附近的可用BLE UUID进行通知,它就会唤醒应用程序.

这似乎可以通过iOS7和iBeacons API实现.有没有人知道Android 4.3中是否有这样的功能,或者是否有针对BLE设备进行周期性扫描BLE环境的良好解决方法?

http://developer.android.com/guide/topics/connectivity/bluetooth-le.html

http://techcrunch.com/2013/09/11/estimote-details-ios-7-ibeacon-support-for-its-contextual-proximity-shopping-devices/

小智 10

我认为有一个解决方法如下:你需要实现一个服务并创建线程到while循环来调用mBluetoothAdapter.startLeScan(mLeScanCallback),然后你可以检查是否被特定设备变为trigeed并进一步搜索特定的UUID.

  • +1用于提醒文档说它是电池密集型的.您还可以连接到尚未收到广告的设备,并将autoConnect设置为"true".(可以像这样创建BluetoothDevice:`BluetoothAdapter.getDefaultAdapter().getRemoteDevice("20:00:A0:60:DD:05");`)但是,它只在你开始扫描时连接.似乎还没有某种背景扫描.也许他们以后补充说. (5认同)
  • 您的建议是可以的,可以在某些情况下使用,但它更像是一种天真的实现.这种方法的问题肯定是功耗.请注意BLE文档页面中的这一行"要查找BLE设备,请使用startLeScan()方法.此方法将BluetoothAdapter.LeScanCallback作为参数.您必须实现此回调,因为这是返回扫描结果的方式.是电池密集型的......"我认为可能有更好的方法来执行此类注册系统范围事件,如地理围栏API (4认同)