Mr.*_*nes 4 android bluetooth-lowenergy ibeacon
背景
我想编程一个Android应用程序,它可以检测我是否进入或离开一个区域.每个区域(比如建筑物)都有广告模式的BLE Beacon.我知道信标的mac adressess.应用程序应在后台运行,并且应该是节能的.立即识别该区域并不重要,但是5分钟的窗口就足够了.
在http://developer.android.com/guide/topics/connectivity/bluetooth-le.html上它表示你不应该"扫描一个循环",但有没有其他方法来实现区域进入/离开事件?
我也对UUID,服务和连接感到困惑.它是正确的,这些问题是不相关的我的问题?
相关问题
我想知道的似乎是一个常见的问题:
但大多数答案都是关于"Android iBeacon Library",我不想使用它.
即使您不确定要使用Android iBeacon库,也可以从它查看源代码并复制想法和/或代码片段,以便您可以获得贡献者和我拥有的课程的优势.在构建它时学到了 这是开源的优势.
与您的问题相关的具体课程:
是的,您需要某种逻辑来定期启动和停止蓝牙LE扫描,因此您需要在最广泛的意义上作为"循环".我相信您引用的文档只是指Android的BLE扫描API的异步性质,您可以开始扫描一次,然后为每个发现的设备获取回调.因此,对于最简单的用例,循环会适得其反.
是的,如果您连接到BLE设备,它将停止广告.因此,除非您需要交换的数据多于广告中的数据,否则请勿执行此操作.或者只连接非常短的时间段.
UUID一词与BLE信标有两个主要含义.它可以表示服务UUID,它是BLE设备提供的GATT服务的唯一标识符.它还可以表示ProximityUUID,它是Apple iBeacon特定术语,用于在广告中发送的信标的三部分标识符的最重要部分.这两个词与彼此无关.除非您制作可连接的信标(见上文),否则服务UUID和GATT服务与您的任务无关.
从您的问题不清楚您是否计划检测标准iBeacons或自定义BLE信标.以上答案适用于更一般的情况,但要知道标准的iBeacons是无连接的,并且不依赖于已知甚至静态的蓝牙Mac地址.虽然您的问题是针对Android的,但如果您构建一个您希望与iOS一起使用的自定义信标解决方案,请知道iOS会在其API中加扰蓝牙Mac地址,因此您永远无法看到真正的Mac地址.
如果您要构建仅支持Android的解决方案,则可以使用蓝牙Mac作为iBeacon标识符.但是如果你这样做,那么就会意识到你的信标将具有静态的标识符,并且无法在许多BLE平台上轻松配置.这是Apple的iBeacon使用单独的ProximityUUID /主要/次要方案作为广告中嵌入的信标标识符的一个原因.
| 归档时间: |
|
| 查看次数: |
4742 次 |
| 最近记录: |