Android AltBeacon library stop find beacons every 1 second when app in background on galaxy s7

Estou a usar a Biblioteca AltBeacon para encontrar o meu sinal a cada 1 segundo quando a aplicação estiver em primeiro plano. Na Galáxia s7, quando a aplicação vai para o fundo, pára de encontrar o sinal a cada segundo., em vez disso, devolve dados a cada poucos segundos entre 5 e 30 segundos. Eu posso ver que "didRangeBeaconsInRegion" call a cada segundo, mas ele retorna com beacons fora a maior parte do tempo.

Preciso de manter o comportamento do primeiro plano quando o aplicativo estiver em segundo plano.

Este é o meu BeaconManager. configuração:

private static long EXIT_PERIOD = 16500;
private static long SCAN_PERIOD = 1150;
.
.
.
beaconManager = BeaconManager.getInstanceForApplication(this);
BeaconManager.setRegionExitPeriod(EXIT_PERIOD);
beaconManager.setBackgroundScanPeriod(SCAN_PERIOD);
beaconManager.setForegroundScanPeriod(SCAN_PERIOD);
beaconManager.setBackgroundBetweenScanPeriod(0);

Tnx

Author: Maor Hadad, 2017-04-03

1 answers

Alguns constroem Android 7.x para dispositivos Samsung colocar Bluetooth scans em Modo de baixa potência quando um aplicativo não tem atividades em primeiro plano.A razão pela qual você vê as deteções frequentes é porque é assim que os scans de baixa energia em Android se comportam.

Pode ler mais sobre este número aqui:

Https://github.com/AltBeacon/android-beacon-library/issues/483

Para ser claro, isto parece ser uma personalização específica da Samsung para Android. Não há nenhuma solução conhecida para impedir que o SO sobreponha uma varredura de baixa latência com uma de baixa potência.
 1
Author: davidgyoung, 2017-04-02 22:14:56