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



我们有一个基于iBeacon的生态系统,并希望通过Android广告来扩展它。我们使用基于此博客文章的 AltBeacon BeaconTransmitter 类: http://developer.radiusnetworks.com/2014/11/18/beacon-transmission-with-android-5.html 与此线程中提到的信标布局: 这是使用 AltBeacon 的 Android 信标库检测 iBeacons 的正确布局吗?

我们使用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方法中,我们看不到这个信标。

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

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

  1. 代码在信标上调用 setDataFields(),即使信标布局表达式中没有定义任何数据字段(带有 d: 前缀)。 这可能会导致异常,但如果没有,可能会搞砸传输。 我会删除它。

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

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

最新更新