【发布时间】:2017-03-01 21:36:35
【问题描述】:
我需要从 kontakt.io 信标获取电池电量。我已将布局设置如下,当我读取 RangingBeaconsInRegion 中的信标时,DataFields 为空。
我希望我可以按照 Kontakt.io 文档中的说明从最后一位读取电池电量。
这是我当前的代码:
private BeaconManager InitializeBeaconManager()
{
BeaconManager bm = BeaconManager.GetInstanceForApplication(Xamarin.Forms.Forms.Context);
var iBeaconParser = new BeaconParser();
iBeaconParser.SetBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25");
bm.BeaconParsers.Add(iBeaconParser);
_rangeNotifier.DidRangeBeaconsInRegionComplete += RangingBeaconsInRegion;
bm.Bind((IBeaconConsumer)Xamarin.Forms.Forms.Context);
return bm;
}
void RangingBeaconsInRegion(object sender, RangeEventArgs e)
{
if (e.Beacons.Count > 0)
{
var beacon = e.Beacons.FirstOrDefault();
var data = beacon.DataFields.FirstOrDefault();
// here DataFields is empty!
}
}
我正在使用 Xamarin Forms,这是 Android 版本的代码。
这可能吗?还是我需要使用 Kontakt.io API?
更新
在应用新布局之前,我已经删除了所有解析器,并且能够读取数据字段。但是,我得到了一个值 8,我不知道这个值是什么意思。
【问题讨论】:
-
我看到了类似的问题,但我遇到的问题是我在应用新布局之前没有清理所有 BeaconParser。见@davidgyoung 回答
标签: xamarin xamarin.forms ibeacon altbeacon kontakt.io