Posso usar a Android Beacon Library em serviço de primeiro plano, mesmo no Android 8 (Oreo)?

O que eu quero alcançar

Estou construindo um aplicativo para um shopping center, com grande quantidade de faróis instalados não muito longe um do outro (suponha ~ 20m de distância).
Quando um usuário entra neste shopping, mesmo sem abrir o aplicativo, ele precisa acompanhar os beacons. Quando um farol é detectado, consultarei o servidor para perguntar se preciso e que notificação local enviar ao usuário.

O que eu planejava fazer

Meu plano original era criar umServiceretornosSTART_STICKY noonStartCommand() para garantir que o serviço seja reiniciado, mesmo que o aplicativo seja morto por um gerenciador de tarefas.

esteService continuará procurando por beacons.

De fato, esta é a abordagem existente do meu colega. Segundo este colega, o serviço inicia quase imediatamente após o aplicativo ter sido morto por um gerenciador de tarefas.

O problema

Mas logo descobri que essa abordagem é problemática.
A abordagem acima tem agora dois grandes problemas:

Drena as baterias porque continua digitalizando;Não funciona no Android 8 devido anovas limitações introduzidas no Android 8.Meu próximo plano

Embora eu saiba queJobScheduler pode ser usado para substituir o Serviço, que também é oabordagem existente da Android Beacon Library, execute uma varredura a cada 15 a 25 minutos absolutamente não pode atender aos meus requisitos, onde os beacons estão muito próximos um do outro e, portanto, precisam ser examinados com freqüência.

Portanto, eu proponho outro plano:

Use a Biblioteca do Beacon Android para executar a detecção de plano de fundoDepois que o primeiro beacon na lista de filtros for detectado, inicie um serviço em primeiro plano (que não será eliminado nem no Android 8) queprocure continuamente beaconsQuando todos os beacons no filtro tiverem saído, pare o serviço em primeiro plano acima. A biblioteca do Android Beacon retornará ao seu estado de detecção em segundo plano.

As intenções dessa abordagem são:

Aproveite a detecção de segundo plano da Android Beacon Library, que economiza bateria, de acordo com adocumentaçãoAfaste-se do manuseio do Android 8 pela Android Beacon Library devido à sua limitação embutida no longo intervalo de verificaçãoA digitalização continua mesmo no Android 8, pois vou usar um serviço em primeiro planoMinha principal pergunta

Ao ler as documentações, eu já sei como procurar sinais em segundo plano.
Mas como faço para usar a Android Beacon Library para digitalizar em um serviço em primeiro plano?
Além disso, há algum problema que você pode descobrir na abordagem acima / Você tem alguma sugestão melhor para alcançar esses requisitos?

Minha outra pergunta

De fato, de acordo comesta postagem, o serviço em segundo plano é iniciado5 minutos depois que um aplicativo é morto.
Mas retornandoSTART_STICKY noonStartCommand() de umService, é reiniciado quase imediatamente.
Então, por que haverá um atraso de 5 minutos, mesmo no pré-Oreo?

questionAnswers(1)

yourAnswerToTheQuestion