BLE длительное фоновое сканирование работает ужасно - PullRequest
0 голосов
/ 23 июня 2018

Я хочу, чтобы мое приложение Android сканировало периферийные устройства BLE в фоновом режиме на неопределенный срок.

ПРИМЕЧАНИЕ. Я пытаюсь добиться того же, что и при сохранении и восстановлении состояния iOS, что отлично работает для меня.,Даже если система приостанавливает, приостанавливает (Android) или удаляет приложение из памяти, я хочу забрать рекламу.

Вся моя система обратного вызова BLE работает отлично, если обнаружено периферийное устройство.Проблема в том, что после нескольких минут работы (5 на некоторых устройствах) рекламные объявления больше не видны.Я могу сказать, потому что я взломал небольшой инструмент в реальном времени, чтобы увидеть, когда происходят открытия.

Вещи, которые я пробовал

  1. Создание службы и ее продвижение вслужба переднего плана

    Intent intent = new Intent(getApplicationContext(), DataCollectionService.class);
    startService(intent);
    
    //... and then from the service itself...
    
    @Override
    public void onCreate() {
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    
        builder
            .setContentTitle("Adrich is running.")
            .setContentText("You're all set. Keep an eye on your email inbox for sweet discounts.")
            .setSmallIcon(R.drawable.adrich_android_notify_icon);
    
        startForeground(1, builder.build());
    }
    
  2. Я также попытался (но затем удалил) систему таймера, которая перезапускает BLE через 10 секунд или около того.Я читал, что после Android 7.0 BLE останавливается через 30 минут .

Дело в том, что мое фоновое сканирование останавливается примерно через 5 минут.

Вопрос

Я беспокоюсь, что мне здесь не хватает чего-то действительно очевидного, поскольку фоновое сканирование работает так плохо.Любые рекомендации?Какие вещи можно попробовать, чтобы BLE фоновое сканирование работало лучше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...