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.