如何在不使用任何库的情况下检测android中的IBeacon

时间:2014-05-08 15:39:41

标签: android ibeacon ibeacon-android android-ibeacon

我是Ibeacon的新手,我想知道我们可以在不使用任何SDKLibrary或库的情况下检测到android中的Ibeacon,任何人都可以举例说明。

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

2 个答案:

答案 0 :(得分:13)

Android操作系统没有任何检测iBeacons的代码,但它的代码允许您扫描蓝牙LE设备,这是一种比iBeacon更低级别的设备。

您可以使用此蓝牙LE扫描滚动自己的代码来检测iBeacons。这正是来自Android iBeacon LibraryRadius Networks所做的。它是开源的,所以如果您不想使用该库,您只需将代码块从库中复制出来并进行自己的检测。

源代码在这里: 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

答案 1 :(得分:0)

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

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

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