我是 Ibeacon 的新手,我想知道我们能否在不使用任何 SDKLibrary 或库的情况下在 android 中检测 Ibeacon,任何人都可以给出示例。
我知道一些像 Radius Networks 这样的图书馆。但我不想使用任何图书馆
我是 Ibeacon 的新手,我想知道我们能否在不使用任何 SDKLibrary 或库的情况下在 android 中检测 Ibeacon,任何人都可以给出示例。
我知道一些像 Radius Networks 这样的图书馆。但我不想使用任何图书馆
Android 操作系统没有任何检测 iBeacon 的代码,但它确实有允许您扫描蓝牙 LE 设备的代码,这些设备是比 iBeacon 更低级别的设备。
您可以滚动您自己的代码,使用此蓝牙 LE 扫描检测 iBeacons。这正是Radius Networks的Android iBeacon 库所做的。它是开源的,所以如果您不想使用该库,您可以简单地从库中复制代码块并进行自己的检测。
源代码在这里: https ://github.com/RadiusNetworks/android-ibeacon-service
编辑:该库已移至http://github.com/AltBeacon/android-beacon-library
如果您检测用例非常简单,这可能会很好。但是请注意不要做太多工作,因为处理所有边缘情况可能会变得越来越复杂。这当然是我在编写库时学到的。
如果你只是想玩这个,我会专注于库中的一个类:IBeacon.java
此类可以将 Android 蓝牙 LE 扫描记录转换为 IBeacon(如果扫描的蓝牙设备确实是 iBeacon)
您可以在此处阅读有关如何在 Android 上设置蓝牙 LE 扫描的信息:http: //developer.android.com/guide/topics/connectivity/bluetooth-le.html
有一个新的小库:https ://github.com/inthepocket/ibeacon-scanner-android
如果没有库,扫描 iBeacon 非常容易,您只需要基于 iBeacon 创建正确的 ScanFilter,然后开始 BLE 扫描。创建正确的 ScanFilter 一开始可能很难,最好看看提到的库中的代码。
取决于 Android 版本,需要打开位置,需要授予位置权限,并且需要始终打开蓝牙。