0

我在从 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();
}
4

1 回答 1

3

几点:

  • 代码正在调用.setDatafields(),但格式没有定义数据字段(“d:”前缀)。.setDatafields()应删除对的调用。

  • 制造商代码应与拥有您正在模拟的信标类型的公司的蓝牙 SIG 制造商代码相匹配。您可以在此处查看两个字节码的完整列表

此外,您可能希望确保 Google Play 商店中的以下应用程序之一在您的设备上运行,这样您就可以确保没有一些硬件设置问题。众所周知,这些应用程序可以在 Nexus 6 上传输 iBeacon 广告,并且它们在后台使用相同的库:

于 2015-01-14T21:13:42.220 回答