使用 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,或者不开始。
我正在尝试创建一个与 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,或者不开始。