使用 android 5.0 设备传输 iBeacon 时遇到问题
Trouble transmitting an iBeacon with an android 5.0 device
我在从 android 设备 Nexus 6 发出 iBeacon 时遇到问题。我在检测从我的 android 设备或 iTouch 发出的信标信号时没有问题,但是我找不到来自 iPhone 的信号。我正在使用 altbeacon 库并使用 BeaconTransmitter class。我放在一个单独的线程中。
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();
}
几点:
代码正在调用 .setDatafields()
,但格式没有定义数据字段("d:" 前缀)。应删除对 .setDatafields()
的调用。
制造商代码应与拥有您正在模拟的信标类型的公司的蓝牙 SIG 制造商代码相匹配。可以看到两个字节码的完整列表here.
此外,您可能需要确保 Google Play 商店中的以下应用程序之一可以在您的设备上运行,以确保您没有遇到硬件设置问题。众所周知,这些应用程序可以在 Nexus 6 上传输 iBeacon 广告,并且它们在后台使用相同的库:
我在从 android 设备 Nexus 6 发出 iBeacon 时遇到问题。我在检测从我的 android 设备或 iTouch 发出的信标信号时没有问题,但是我找不到来自 iPhone 的信号。我正在使用 altbeacon 库并使用 BeaconTransmitter class。我放在一个单独的线程中。
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();
}
几点:
代码正在调用
.setDatafields()
,但格式没有定义数据字段("d:" 前缀)。应删除对.setDatafields()
的调用。制造商代码应与拥有您正在模拟的信标类型的公司的蓝牙 SIG 制造商代码相匹配。可以看到两个字节码的完整列表here.
此外,您可能需要确保 Google Play 商店中的以下应用程序之一可以在您的设备上运行,以确保您没有遇到硬件设置问题。众所周知,这些应用程序可以在 Nexus 6 上传输 iBeacon 广告,并且它们在后台使用相同的库: