android 8.0 接收开机广播 (应用自启)
在清单文件中注册<receiverandroid:name=".BootReceiver"android:enabled="true"android:exported="true"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /&g
·
在清单文件中注册
<receiver
android: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);
@Override
public 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);
更多推荐
已为社区贡献2条内容
所有评论(0)