我正在尝试使用Android Beacon Library传输iBeacon,但我不确定我的代码是否正确。我使用类似nRF主控制面板的应用来验证它是否作为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);
}
});
谢谢!
答案 0 :(得分:0)
代码看起来正确。一些提示:
进行此调用以测试是否支持:
int result = BeaconTransmitter.checkTransmissionSupported(context);
如果设备支持传输,则该方法返回BeaconTransmitter.SUPPORTED
。它也可能会返回:
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_ADVERTISEMENTS
,NOT_SUPPORTED_MULTIPLE_ADVERTISEMENTS
和NOT_SUPPORTED_CANNOT_GET_ADVERTISER
返回通常表示该设备没有兼容的芯片组,或者制造商尚未实现Google针对Android所需的驱动程序支持5.x BLE传输API。