-1 android bluetooth ibeacon altbeacon
我是一名法国工程专业的学生,我正在自学Android语言。我和我的朋友必须创建一个基于 iBeacon 技术的 Android 应用程序。几天前我发现了 AltBeacon 库,我发现它很棒,但我有一些关于它的问题要问。
首先,你必须明白我是编程新手,我的问题对你来说是白痴。但我真的需要帮助;)
Android提供了一个Bluetooth.LE Api,我知道我可以使用startLeScan()方法来获取BluetoothDevice。但是如果我想使用 AltBeacon 库,它是允许我们扫描 iBeacon 设备并获取 Beacon 对象的等效方法吗?
另一个问题,如果我使用 startLeScan() 并获得一个 BluetoothDevice,如何将其转换为 Beacon 以便使用 AltBeacon 方法?
我对我的英语错误感到抱歉,我希望我的问题能够被理解。再见
这是我们用来检测 iBeacons 并使用 AltBeacon 库在 Android 服务中获取信标对象的方法。
设置 BeaconManager
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.setForegroundScanPeriod(5100);
beaconManager.setForegroundBetweenScanPeriod(2000);
beaconManager.setBackgroundScanPeriod(5100);
beaconManager.setBackgroundBetweenScanPeriod(2000);
//Parse IBeacon structure
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
beaconManager.bind(this);
Run Code Online (Sandbox Code Playgroud)
开始测距信标
private void startBeaconRangeFinderService() {
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, org.altbeacon.beacon.Region region) {
try {
if (beacons.size() > 0) {
for (Beacon b : beacons) {
processYourBeaconInThisMethod(b);
}
}
} catch (Exception ex) {
Log.e(TAG_BEACON_ACTIVITY, "Error was thrown: " + ex.getMessage());
}
}
});
try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
} catch (RemoteException e) {
Log.e(TAG_BEACON_ACTIVITY, "Error was thrown: " + e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3552 次 |
| 最近记录: |