如何在Android中不使用任何库检测iBeacon

8

我是Ibeacon的新手,想了解能否在Android上检测Ibeacon而不使用任何SDK库或库,有没有人能给出示例。

我知道一些像Radius Networks这样的库,但我不想使用任何库。

2个回答

18

Android操作系统没有任何代码可以检测iBeacon,但它确实有代码可以让你扫描低于iBeacon的低级设备——蓝牙LE设备。

你可以使用这个蓝牙LE扫描来自己编写检测iBeacons的代码。这正是Radius NetworksAndroid iBeacon Library所做的。它是开源的,所以如果你不想使用该库,你可以简单地从该库中复制一些代码块并进行自己的检测。

源代码在这里:https://github.com/RadiusNetworks/android-ibeacon-service

编辑:该库已经移至http://github.com/AltBeacon/android-beacon-library

如果你的检测用例非常简单,这可能很好地发挥作用。但要小心不要承担过多工作,因为处理所有边缘情况可能变得越来越复杂。这正是我写库时学到的东西。
如果你只想玩一下,我建议专注于库中的一个类:IBeacon.java 该类可以将Android Blueooth LE扫描记录转换为IBeacon(如果扫描到的蓝牙设备确实是iBeacon)。
你可以在这里阅读有关如何在Android上设置蓝牙LE扫描的信息:http://developer.android.com/guide/topics/connectivity/bluetooth-le.html

为了方便您,上述提到的库现在可以在以下网址获取:https://github.com/AltBeacon/android-beacon-library - dermatthias

2

有一个新的小型库:https://github.com/inthepocket/ibeacon-scanner-android

没有库也很容易扫描iBeacon,您只需根据iBeacon创建正确的ScanFilter,然后启动BLE扫描即可。刚开始创建正确的ScanFilter可能有些困难,最好查看提到的库中的代码。

根据Android版本的不同,需要打开位置信息,授予位置权限并始终打开蓝牙。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接