我正在整理一个用于演示/测试目的的应用程序,这将允许我的团队使用AltBeacon广告功能将他们的手机用作灯塔。我已成功使用以下代码在我的运行Android API 23的Nexus 6P上运行广告,但我无法检测到"我已分配蓝牙名称的信标。它始终出现" N / A"为了本地名称。
//Beacon stuff
private Beacon mBeacon;
private BeaconParser mBeaconParser;
private BeaconTransmitter mBeaconTransmitter;
private String estimoteBeaconLayout = "m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24";
这是我的方法中开始做广告的代码
//creating the beacon object based on the user input
mBeacon = new Beacon.Builder()
.setId1(inputUUID)
.setId2(inputMinor)
.setId3(inputMajor)
.setManufacturer(0x004C)
.setTxPower(-59)
.setRssi(-80)
.setBeaconTypeCode(02)
.setBluetoothName("TestName")
//.setDataFields(Arrays.asList(new Long[]{0l}))
.build();
//creating the beacon parser and setting it to the user specified format
mBeaconParser = new BeaconParser().setBeaconLayout(estimoteBeaconLayout);
//setting up the beacon transmitter
mBeaconTransmitter = new BeaconTransmitter(getContext(), mBeaconParser);
//starting advertising
mBeaconTransmitter.startAdvertising(mBeacon, new AdvertiseCallback() {
@Override
public void onStartSuccess(AdvertiseSettings settingsInEffect) {
updateDebugTextWindow("Advertising Started");
super.onStartSuccess(settingsInEffect);
}
@Override
public void onStartFailure(int errorCode) {
updateDebugTextWindow("Advertising start failed");
super.onStartFailure(errorCode);
}
});
这是我运行Nordic的nRF Master应用程序的Nexus 5的屏幕截图
有关如何让本地名称工作的任何提示将不胜感激