iOS设备无法看到Nexus 9宣传的AltBeacon信标

时间:2014-12-09 11:48:40

标签: android ios ibeacon android-ibeacon altbeacon

我们有一个基于iBeacon的生态系统,并希望通过Android广告进行扩展。 我们使用基于此博客文章的AltBeacon BeaconTransmitter类:http://developer.radiusnetworks.com/2014/11/18/beacon-transmission-with-android-5.html以及此主题中提到的信标布局:Is this the correct layout to detect iBeacons with AltBeacon's Android Beacon Library?

我们使用Nexus 9平板电脑进行广告宣传,我们的其他Android设备可以看到广告中的灯塔,但iOS设备却没有。

我们创建这样的灯塔:

mBeaconTransmitter = new BeaconTransmitter(this, new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
            // Transmit a beacon with Identifiers 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 1 2
            Beacon beacon = new Beacon.Builder()
                    .setId1("our uuid")
                    .setId2("a major id")
                    .setId3("a minor id")
                    .setManufacturer(0x0000)
                    .setTxPower(-59)
                    .setDataFields(Arrays.asList(new Long[] {0l}))
                    .build();

缺少的部分是什么?在CL的didRangeBeacons方法中,我们无法看到这个灯塔。

1 个答案:

答案 0 :(得分:3)

Android Beacon Library'sBeaconTransmitter类要求new BeaconParser.setBeaconLayout()表达式完全适合您要传输的信标类型。

关于代码的两件事看起来很可疑:

  1. 即使在信标布局表达式中没有定义数据字段(带有d:前缀),代码也会在信标上调用setDataFields()。这可能会导致异常,但如果没有,则可能会导致变速器堵塞。我会删除它。

  2. 我不确定制造商代码0x0000是否有效。如果(1)没有解决问题,请尝试使用不同的制造商代码找到适用于iOS的产品代码。

  3. 只是为了验证Nexus 9硬件没有问题,请尝试在Google Play商店中运行免费的QuickBeacon应用。它使用完全相同的API进行传输,因此如果它可以工作,您也应该能够使代码工作。