Я искал ответы на некоторые вопросы, касающиеся загрузочного приемника, но ни один из них не касался моей проблемы. Я добавил все решения в мой код.
Я хочу получить завершенную загрузку на Android OREO, который до сих пор является устройством, которое не работает. Вот полная реализация
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
//inside application
<receiver
android:name="com.anb.lucem.reminder.services.BootReceiver"
android:exported="true"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
BootReceiver.java
public class BootReceiver extends BroadcastReceiver {
private String TAG = "com.lucemanb.reminderapp.boot";
public void onReceive(final Context context, Intent intent) {
Log.d(TAG, "Boot Completed");
}
}
Это нормально работает ниже API 26, но Oreo, похоже, использует другой подход
09-10 16:45:55.792 848-873/? D/AppLockLoader: isAppLocked: packageName=com.anb.lucem.reminder, isLocked=false
09-10 16:45:57.860 657-951/? D/ProcessManager.AS: *** Skip {com.anb.lucem.reminder} to receive broadcast.
09-10 16:45:57.860 657-951/? D/BroadcastQueue: *** Not launch app com.anb.lucem.reminder/10130 for broadcast Intent { act=android.intent.action.BOOT_COMPLETED flg=0x9000010 (has extras) } from null/1000.(AutoStart limited)
Что-то не так делаю?