android - 如何以编程方式关闭运行时权限对话框?
问题描述
我们需要实现一个场景,在用户闲置 5 秒后,我们必须使用 Denial 关闭运行时权限对话框。
脚步:
用户单击保存按钮
显示权限对话框。
如果用户在 5 秒内没有点击接受/拒绝
预期结果:应关闭对话框并选择拒绝选项。
任何帮助,将不胜感激。
另外请让我知道,如果这甚至可能这样做吗?
解决方案
这确实是一个有效的边缘情况,如下所述。
解决方案
sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
为什么要关闭权限对话框?
假设用户启动您的应用程序并立即显示权限对话框,例如来自片段。然后用户切换到另一个应用程序,从该应用程序向您的应用程序发送新意图,例如Intent.ACTION_VIEW
. 然后,您可能希望在显示权限对话框之前更改/重新排列 UI:
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (isShowingPermissionDialog() {
// Handle this intent after permisson dialog is dismissed!
mPendingIntent = intent;
} else {
// This could interfere with the expected permission
// callback of the active fragment etc.
changeActiveFragment();
}
}
或者,如果您想明确关闭权限对话框:
private void closeSystemDialogs() {
sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
}
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
closeSystemDialogs();
changeActiveFragment();
}
推荐阅读
- jmeter - 如何使用 Taurus 修改 jmeter 脚本
- c++ - 如何在解析过程中区分 IP 地址和域名
- php - Laravel:动态获取查询中使用的订单?
- dictionary - Umbraco 字典翻译在本地主机上无法正常工作
- google-cloud-platform - 为 Restful API 配置 Pub/Sub
- tycho - 平台运行时和依赖项
- angular - ng serve localhost:4200 打开时会下载一个空文件
- python - 需要帮助优化 gspread API 调用
- wpf - 为什么使用 ToolWindow 时只有顶部边框可见?
- c# - Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y") 总是返回 0