其他分享
首页 > 其他分享> > android-iOS设备看不到Nexus 9广告的AltBeacon信标

android-iOS设备看不到Nexus 9广告的AltBeacon信标

作者:互联网

我们有一个基于iBeacon的生态系统,并希望通过Android广告对其进行扩展.
我们基于此博客文章:http://developer.radiusnetworks.com/2014/11/18/beacon-transmission-with-android-5.html使用AltBeacon BeaconTransmitter类,并在此线程: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方法中,我们看不到该信标.

解决方法:

Android Beacon Library’s新的BeaconTransmitter类要求新的BeaconParser.setBeaconLayout()表达式与要传输的信标类型完全正确.

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

>即使在信标布局表达式(带有d:前缀)中未定义任何数据字段,代码也会在信标上调用setDataFields().这可能会导致异常,但是如果没有异常,则可能是变速箱损坏了.我会删除这个.
>我不确定制造商代码0x0000是否有效.如果(1)不能解决问题,请尝试使用不同的制造商代码来找到适用于iOS的代码.

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

标签:ibeacon,altbeacon,android-ibeacon,ios,android
来源: https://codeday.me/bug/20191121/2048102.html