我正在try 让我的Android应用程序在启动时自动启动.

我正在使用Galaxy Tab A7 Lite,运行Android 11.

很高兴得到任何帮助.

非常感谢.

这是我的代码...

我已经定义了接收人:

import 和roid.content.BroadcastReceiver;
import 和roid.content.Context;
import 和roid.content.Intent;

public class StartOnBootupReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
            Intent activityIntent = new Intent(context, MainActivity.class);
            context.startActivity(activityIntent);
        }
    }
}

在AndroidManifest中.xml文件:

<uses-permission 和roid:name="和roid.permission.RECEIVE_BOOT_COMPLETED" />

<receiver 和roid:name=".StartOnBootupReceiver"
    和roid:exported="false"
    >
    <intent-filter>
        <action 和roid:name="和roid.intent.action.BOOT_COMPLETED" />
        <action 和roid:name="和roid.intent.action..QUICKBOOT_POWERON" />
    </intent-filter>
</receiver>

推荐答案

你的代码看起来很好,你的接收器很可能正在执行.然而,由于呼叫startActivity(),它正在崩溃.由于安卓10,只有当应用程序已经在前台或满足安卓指南Restrictions on starting activities from the background中列出的例外之一时,才能调用startActivity().

另外,android:exported的值没有影响.操作系统仍然可以调用具有android:exported="false"的接收器,在exported="true"的情况下,其他应用程序无法发送具有BOOT_COMPLETEDQUICKBOOT_COMPLETED的广播,因为它们是受保护的意图动作.

Android相关问答推荐

如何完全隐藏的元素堆叠在CardView?

房间DB:UPSERT返回什么?

如何在Android Studio中将我的Java-库&库设置为Kotlin库

如何在Android Jetpack Compose中找到我的手机屏幕一行有多少个单词

从片段导航回来

当提供非状态对象时,compose 如何进行重组

android crashlytics 显示崩溃但不显示我的课程中的位置

使用 Gadle kotlin 为多模块 Android 代码库设置 jacoco

如何删除 Jetpack Compose 中按钮的左边框?

Jetpack Compose:在屏幕外制作长水平图像的动画

如何从包装在泛型中的 retrofit 调用中检索密钥?

在 Jetpack Compose 中使用 .observeAsState() 时,如何在更改 MutableLiveData 的值后开始执行一段代码?

找不到(包名称).在以下位置搜索:

在 Kotlin 中打开新片段时如何对当前片段应用更改?

如何在 Android 应用中录制短视频?

使用 Jetpack Compose 时,如何以简单的方式在 Color.kt 中定义 colored颜色 ?

协程是否在 if 条件下保持秩序?

在 jetpack compose 中使用 .shadow 和 Button 会导致问题

Firebase Crashlytics 缩小 R8 Android

Android全屏AlertDialog