我遇到的一个问题,就是目前我在项目上准备实现一个apk安装完后自动打开的操作,我清楚在Android8.0以后,关于广播的权限的需要动态注册,目前的问题是我在我自己写的下载demo上能实现apk安装完成后点击打开能打开,但是在项目app上更新完后不能自动打开更新完毕的App,必须要手动点击才能进App,目前我想到的办法是通过注册广播事件来实现自启动app,但是没有任何效果,动态静态都注册了不清楚是什么状况,在demo上自启动的广播能触发,但是在项目app不能触发,希望有解答
**//自启动代码
static final String ACTION = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
Log.e("接收广播", "onReceive: ");
Log.e("接收广播", "onReceive: " + intent.getAction());
//开机启动
if (intent.getAction().equals(ACTION)) {
Intent mainActivityIntent = new Intent(context, MainActivity.class); // 要启动的Activity
Log.e("Package", String.valueOf(mainActivityIntent));
mainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(mainActivityIntent);
}
**
<!-- 广播自启动注册 -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!--注册广播-->
<receiver
android:name=".utils.AutoStartBroadReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
上述代码在demo能自动触发,但是在项目上无法触发
环境 Android 11 jdk1.8 Api29