Мне нужно получить уровень заряда батареи от маяков kontakt.io. Я установил макет, как показано ниже, и DataFields пусты, когда я читаю маяки в RangingBeaconsInRegion.
Я ожидал, что смогу прочитать уровень заряда батареи с последнего бита, как описано в документации 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.
Это возможно? или мне нужно использовать API Kontakt.io?
ОБНОВЛЕНИЕ
Я удалил все синтаксические анализаторы, прежде чем применять новый макет, и я могу читать поля данных. Однако я получаю значение 8, и понятия не имею, что это значение означает.