使用BroadcastReceiver询问用户是否希望打开appReceive

时间:2017-09-11 10:40:11

标签: android broadcastreceiver android-permissions

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

目前,我已经设置了onRecieve(),以便启动主要活动

 @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

1 个答案:

答案 0 :(得分:0)

  

我希望用户提示并询问他们是否希望在收到意图“android.hardware.usb.action.USB_DEVICE_ATTACHED”后打开应用程序。

您要展示的屏幕必须来自您的应用,所以事实上它已经开始,即使用户对它的看法不同。

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