Android设备作为虚拟ibeacon

问题描述 投票:0回答:1

我正在尝试使用alt信标库将我的Android设备作为虚拟iBeacon,我能够将我的设备设为iBeacon,但它在iOS(核心位置)或Android设备中无法检测到。这是我正在使用的代码

Beacon beacon = new Beacon.Builder()
            .setId1("UUID")
            .setId2("101")
            .setId3("201")
            .setManufacturer(0x0075)
            .setTxPower(-59)
            .setDataFields(Arrays.asList(new Long[]{0l}))
            .build();

    BeaconParser beaconParser = new BeaconParser()
            .setBeaconLayout(BeaconParser.ALTBEACON_LAYOUT);
    BeaconTransmitter beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser);
    beaconTransmitter.startAdvertising(beacon, new AdvertiseCallback() {
        @Override
        public void onStartSuccess(AdvertiseSettings settingsInEffect) {
            super.onStartSuccess(settingsInEffect);
            Log.d(TAG, "Transmission started");

        }

        @Override
        public void onStartFailure(int errorCode) {
            super.onStartFailure(errorCode);
            Log.e(TAG, "Transmission failed with error code : " + errorCode);
        }
    });
android beacon altbeacon android-ibeacon
1个回答
0
投票

您无法在iOS上使用CoreLocation检测AltBeacon格式(在BeaconParser.ALTBEACON_LAYOUT显示的代码中指定)。您只能使用该iOS API检测iBeacon。要切换到iBeacon传输,您必须:

  • 使用正确的iBeacon布局。由于知识产权的原因,这是专有的,因此不是库的一部分,但您可以在这里找到使用的布局:https://beaconlayout.wordpress.com/
  • Apple设备仅使用Apples蓝牙制造商代码0x004c检测信标。您需要更改说.setManufacturer(0x0075)的行以使用Apple的值。
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.