我在从Android设备Nexus 6发射iBeacon时遇到问题。我检测到我从Android设备或iTouch发出的信标信号没有问题,但是我找不到来自iPhone的信号。我正在使用altbeacon库并使用BeaconTransmitter类。我提出了一个单独的帖子。
new Thread(new Runnable() {
@Override
public void run() {
mBeaconTransmitter = new BeaconTransmitter(CredentialActivity.this, new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
beacon = new Beacon.Builder()
.setId1("BA39A880-799C-46FA-86AB-A4AC51927BAA")
.setId2("1")
.setId3(String.valueOf(selectedBouncer))
.setManufacturer(0x0000) // Choose a number of 0x00ff or less as some devices cannot detect beacons with a manufacturer code > 0x00ff
.setTxPower(-59)
.setDataFields(Arrays.asList(new Long[]{0l}))
.build();
mBeaconTransmitter.startAdvertising(beacon);
}
}
).start();
}
答案 0 :(得分:3)
几点:
代码正在调用.setDatafields()
,但格式没有定义数据字段(" d:"前缀)。应删除对.setDatafields()
的调用。
制造商代码应与拥有您正在模拟的信标类型的公司的Bluetooth SIG制造商代码相匹配。您可以看到两个字节代码的完整列表here.
此外,您可能希望确保Google Play商店中的以下某个应用在您的设备上正常运行,以确保您不会遇到任何硬件设置问题。众所周知,这些应用程序可以在Nexus 6上传输iBeacon广告,并且它们使用相同的库: