使用 BroadcastReceiver 询问用户是否希望打开应用程序 onReceive

Use BroadcastReceiver that asks a user if they wish to open app onReceive

我正在尝试创建一个与 USB 闪存驱动器通信的应用程序。我希望在收到意图 "android.hardware.usb.action.USB_DEVICE_ATTACHED" 后提示用户并询问他们是否希望打开应用程序。

目前,我设置了 onRecieve() 以便它启动主要 activity

 @Override
public void onReceive(Context context, Intent intent) {

    Intent startIntent = context
            .getPackageManager()
            .getLaunchIntentForPackage(context.getPackageName());

    startIntent.setFlags(
            Intent.FLAG_ACTIVITY_REORDER_TO_FRONT |
                    Intent.FLAG_ACTIVITY_NEW_TASK |
                    Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
    );
    context.startActivity(startIntent);
}

我希望首先提示用户获得许可,我想要实现的一个很好的例子是 ES 文件资源管理器 Like this

I would like to have the user prompted and asked if they wish to open the app once the intent "android.hardware.usb.action.USB_DEVICE_ATTACHED" is received.

您要显示的屏幕必须来自您的应用,因此实际上它已经启动,即使用户对它的看法不同。

您可以做的是在收到此广播时启动 activity(您需要处于 activity 上下文中才能在屏幕上显示内容)。使 activity 的背景透明,并让它在顶部显示处理用户输入的对话框。从那里开始下一个 activity,或者不开始。