8

我是 Ibeacon 的新手,我想知道我们能否在不使用任何 SDKLibrary 或库的情况下在 android 中检测 Ibeacon,任何人都可以给出示例。

我知道一些像 Radius Networks 这样的图书馆。但我不想使用任何图书馆

4

2 回答 2

17

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

于 2014-05-08T16:06:37.463 回答
2

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

如果没有库,扫描 iBeacon 非常容易,您只需要基于 iBeacon 创建正确的 ScanFilter,然后开始 BLE 扫描。创建正确的 ScanFilter 一开始可能很难,最好看看提到的库中的代码。

取决于 Android 版本,需要打开位置,需要授予位置权限,并且需要始终打开蓝牙。

于 2016-10-23T22:11:07.417 回答