AI智能
改变未来

android 8.0 接收开机广播 (应用自启)

在清单文件中注册

<receiverandroid:name=\".BootReceiver\"android:enabled=\"true\"android:exported=\"true\"><intent-filter><action android:name=\"android.intent.action.BOOT_COMPLETED\" /></intent-filter></receiver>

加上权限

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

然后需要动态注册下

IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(Intent.ACTION_BOOT_COMPLETED);BootReceiver BootReceiver = new BootReceiver();this.registerReceiver(BootReceiver, intentFilter);

最后在广播接收这种如果需要跳转页面需要加上
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

@Overridepublic void onReceive(Context context, Intent intent) {Log.i(\"BootReceiver\", \"onReceive: \");Intent intent1 = new Intent(context, MainActivity.class);intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent1);}

如果上面还是不可以接收到的话可能需要动态加上权限(之前做其他广播遇到的坑 这个我没试过我是直接加的)

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECEIVE_BOOT_COMPLETED,}, 1);
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » android 8.0 接收开机广播 (应用自启)