Детектирование маяка в Oreo после пробуждения из режима Doze - PullRequest
0 голосов
/ 11 февраля 2019

пытаюсь разбудить мою службу переднего плана с http://www.davidgyoungtech.com/2017/08/07/beacon-detection-with-android-8#the-new-way-fast-detections

Ожидаемое поведение

Посмотрите первый маяк и отправьте PendingIntent в BroadcastReceiver, который запускает мою службу переднего плана с BeaconConsumer.

Фактическое поведение

После режима ожидания ничего не вызывается.

Действия по воспроизведению этого поведения

Использование того же кода, который здесь: http://www.davidgyoungtech.com/2017/08/07/beacon-detection-with-android-8#the-new-way-fast-detections, чем положить телефонрежим ожидания и задний терминал:

adb shell dumpsys deviceidle force-idle

adb shell dumpsys deviceidle unforce

broadcastReceiver код:

class BluetoothScanReceiver: BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
    val bleCallbackType = intent.getIntExtra(BluetoothLeScanner.EXTRA_CALLBACK_TYPE, -1)
    if (bleCallbackType != -1) {
        val scanResults = intent.getParcelableArrayListExtra<Parcelable>(
                BluetoothLeScanner.EXTRA_LIST_SCAN_RESULT)
        println("xxxxx BluetoothScanReceiver onreceive ")
        context.startBeaconScanning()
    }
}

}

Инициализация сканера Ble

val settings = ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_POWER).build()
val bluetoothManager = applicationContext.getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
val bluetoothAdapter = bluetoothManager.adapter
val i = Intent(applicationContext, BluetoothScanReceiver::class.java)
val pendingIntent = PendingIntent.getBroadcast(applicationContext, 0, i, FLAG_UPDATE_CURRENT)
val scanner = bluetoothAdapter.bluetoothLeScanner
scanner.startScan(null, settings, pendingIntent)

Модель мобильного устройства и версия ОС

Nokia 5 - Android 8.1

Что следуетя делаю, чтобы запустить службу переднего плана, когда вижу первый маяк, даже если мое приложение убито / находится в режиме ожидания / после режима ожидания?

Спасибо

...