无法使用android 5.0设备传输iBeacon

时间:2015-01-14 19:59:47

标签: android android-5.0-lollipop ibeacon ibeacon-android altbeacon

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

1 个答案:

答案 0 :(得分:3)

几点:

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

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

此外,您可能希望确保Google Play商店中的以下某个应用在您的设备上正常运行,以确保您不会遇到任何硬件设置问题。众所周知,这些应用程序可以在Nexus 6上传输iBeacon广告,并且它们使用相同的库: