Я создаю приложение Xamarin.android, с помощью которого я могу сканировать устройство BLE и уведомлять пользователя, когда он находится в диапазоне независимо от того, находится ли приложение на переднем плане, находится на паузе или завершено. Я использую устройство ESP32 BLE в качестве ibeacon. Я использовал библиотеку AltBeacon и выполнил все шаги, указанные в ссылке ниже
https://altbeacon.github.io/android-beacon-library/samples.html
Я преобразовал код для Xamarin.android. Я получаю уведомление, когда приложение находится на переднем плане и в состоянии паузы, но не когда его убивают.
Я также пытался использовать Googles Nearby Message API . Но я не могу обнаружить ibeacon.
Вот код для класса приложения
[Application]
public class Myapplication : Application, IBootstrapNotifier
{
BackgroundPowerSaver backgroundPowerSave;
RegionBootstrap regionBootstrap;
public Myapplication(IntPtr handle, JniHandleOwnership ownerShip) : base(handle, ownerShip)
{
}
public override void OnCreate()
{
base.OnCreate();
BeaconManager beaconManager = BeaconManager.GetInstanceForApplication(this);
beaconManager.BeaconParsers.Add(new BeaconParser().SetBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
backgroundPowerSave = new BackgroundPowerSaver(this);
regionBootstrap = new RegionBootstrap(this, Helper.GetRegion());
}
public void DidDetermineStateForRegion(int state, Region region)
{
Helper.ShowNotification(this, "Beacon - state for region", "Log in");
}
public void DidEnterRegion(Region region)
{
regionBootstrap.Disable();
//show notification
}
public void DidExitRegion(Region region)
{
//show notification
}
}
Как обойти эту проблему?