我在XAMARIN的AltBeacon库中遇到了iBeacon传输问题。在Android Studio中,此代码可以完美运行(我可以在iPhone上检测到创建的iBeacon)。我正在使用Android 5:
mBeaconTransmitter = new BeaconTransmitter(this, new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
Beacon beacon = new Beacon.Builder()
.setId1("FDA50693-A4E2-4FB1-AFCF-C6EB07647825")
.setId2("1000")
.setId3("2000")
.setManufacturer(0x004C)
.setTxPower(-59)
.setDataFields(Arrays.asList(new Long[] {0l}))
.build();
mBeaconTransmitter.startAdvertising(beacon);
但是,我还没有在XAMARIN(Visual Studio)中获得相同的结果。在这种情况下,我无法在iPhone上检测到创建的iBeacon:
var iBeaconParser = new BeaconParser();
iBeaconParser.SetBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");
BeaconTransmitter beaconTransmitter = new BeaconTransmitter(ApplicationContext, iBeaconParser);
var beacon1 = new AltBeacon.Builder().SetId1("FDA50693-A4E2-4FB1-AFCF-C6EB07647825")
.SetId2("1000").SetId3("2000").SetTxPower(-59).SetManufacturer(0x004C).Build();
beaconTransmitter.StartAdvertising(beacon1);
传输在第二种情况下也有效。其他Android设备可以检测到创建的iBeacon。在iPhone上检测iBeacon失败。
谢谢您的任何建议。
嘿哥们,您问这个问题已经快三年了,所以我不知道这对您是否仍然有用,但是我会帮助别人。
我已经看到了这段代码,这对于信标广播是绝对正确的,并且我建议您检查是否在初始化函数IBeaconconsumer
中将信标管理与Bind((IBeaconConsumer)Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity);
绑定在一起,或者检查是否使用了_tagRegion并引用了在右边。
希望这会有所帮助。