使用 Android Beacon Library 作为 iBeacon 传输

Using Android Beacon Library to transmit as iBeacon

我正在尝试使用 Android Beacon 库传输 iBeacon,但我不确定我的代码是否正确。我使用像 nRF Master Control Panel 这样的应用程序来验证它是否作为 iBeacon 传输,但它似乎没有那样做。

下面是我的代码

Beacon beacon = new Beacon.Builder()
                        .setId1("6fb0e0e9-2ae6-49d3-bba3-3cb7698c77e2")
                        .setId2(Integer.toString(minor1))
                        .setId3(Integer.toString(minor2))
                        .setManufacturer(0x0000)
                        .setTxPower(-59)
                        .setDataFields(Arrays.asList(new Long[] {0l}))
                        .build();
                BeaconParser beaconParser = new BeaconParser()
                        .setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");
                BeaconTransmitter beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser);
                beaconTransmitter.startAdvertising(beacon);
            }
        });

谢谢!

代码看起来正确。一些提示:

  1. 确保蓝牙已打开。
  2. 确认您的设备支持传输。在此处查看列表 http://altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html
  3. 进行此调用以测试它是否受支持:

    int result = BeaconTransmitter.checkTransmissionSupported(context);
    

如果设备支持传输,方法returns BeaconTransmitter.SUPPORTED。它也可能 return:

    NOT_SUPPORTED_MIN_SDK
    NOT_SUPPORTED_BLE
    NOT_SUPPORTED_MULTIPLE_ADVERTISEMENTS (deprecated)
    NOT_SUPPORTED_CANNOT_GET_ADVERTISER_MULTIPLE_ADVERTISEMENTS
    NOT_SUPPORTED_CANNOT_GET_ADVERTISER

NOT_SUPPORTED_CANNOT_GET_ADVERTISER_MULTIPLE_ADVERTISEMENTSNOT_SUPPORTED_MULTIPLE_ADVERTISEMENTSNOT_SUPPORTED_CANNOT_GET_ADVERTISER return 通常表示设备没有兼容的芯片组,或者制造商没有实现驱动程序支持Google 要求 Android 5.x BLE 传输 API。