使用 AltBeacon 库查找 iBeacon

-1 android bluetooth ibeacon altbeacon

我是一名法国工程专业的学生,​​我正在自学Android语言。我和我的朋友必须创建一个基于 iBeacon 技术的 Android 应用程序。几天前我发现了 AltBeacon 库,我发现它很棒,但我有一些关于它的问题要问。

首先,你必须明白我是编程新手,我的问题对你来说是白痴。但我真的需要帮助;)

Android提供了一个Bluetooth.LE Api,我知道我可以使用startLeScan()方法来获取BluetoothDevice。但是如果我想使用 AltBeacon 库,它是允许我们扫描 iBeacon 设备并获取 Beacon 对象的等效方法吗?

另一个问题,如果我使用 startLeScan() 并获得一个 BluetoothDevice,如何将其转换为 Beacon 以便使用 AltBeacon 方法?

我对我的英语错误感到抱歉,我希望我的问题能够被理解。再见

Hen*_*dri 5

这是我们用来检测 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)