BOOT_COMPLETED действие не может быть получено с API 27

Код ниже не получает BOOT_COMPLETED действие с API 27, хотя работает с API 25.

Однако это действие относится к числу неявных исключений вещания в соответствии с официальной документацией.

Когда я ввожу команду adb am broadcast -a android.intent.action.BOOT_COMPLETED сообщение ниже отображается на консоли:

Background execution not allowed: receiving Intent { act=android.intent.action.BOOT_COMPLETED flg=0x400010 } to com.boottest/.OnBootReceiver

Есть ли шанс преодолеть эту проблему?

мой AndroidManifest.xml файл:

...
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="27" />

<application ... >
    ....
    <receiver android:name=".OnBootReceiver" android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
</application>
....

мой build.gradle файл:

...
android {
    compileSdkVersion 27
    buildToolsVersion "27.0.1"

    defaultConfig {
        applicationId "com.boottest"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }
    ...
}

dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:27.0.+"
    compile "com.facebook.react:react-native:+"  // From node_modules
}

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

мой OnBootReceiver.java файл:

package com.boottest;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class OnBootReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
        Log.d("BootTest", " OnBootReceiver - Received a broadcast!");
  }
}

1 ответ

Проблема была в эмуляторе Android.

Работает как положено и OnBootReceiver класс получателя оценивает BOOT_COMPLETED действие при запуске при использовании Genymotion.

Другие вопросы по тегам