Сканирование ibeacon в Xamarin.android при неработающем приложении не работает - PullRequest
0 голосов
/ 03 октября 2019

Я создаю приложение 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 
    }
}

Как обойти эту проблему?

1 Ответ

0 голосов
/ 03 октября 2019

Тестирование обнаружения после «убийства» приложения является непростым делом, и то, работает ли оно (обычно это работает) или нет, зависит от того, как именно вы его убили, и от какого производителя устройства вы говорите.

Внимательно прочитайте все подробности на этой странице , чтобы убедиться, что вы тестируете сценарий, который, как ожидается, будет работать.

...