Android 在运行时禁用权限会发生什么情况?

Android 在运行时禁用权限会发生什么情况?,android,permissions,Android,Permissions,我找不到有关用户在应用程序运行时禁用应用程序权限时会发生什么情况的任何信息 应用程序是否重新初始化 我看到,在某些应用程序中,如果在我禁用权限时打开了对话框或底页,则当我返回应用程序时,该对话框将不再显示 有人能详细解释一下当权限在运行时被拒绝时会发生什么吗?或者有人给我一些有用的链接吗 我对返回应用程序时调用哪些生命周期事件特别感兴趣。简单地说,这取决于应用程序在需要权限时尝试执行的操作 例如:如果我们生活在一个要求你必须是成年人才能在YouTube上观看任何视频的国家,那么位置权限被拒绝的情

我找不到有关用户在应用程序运行时禁用应用程序权限时会发生什么情况的任何信息

应用程序是否重新初始化

我看到,在某些应用程序中,如果在我禁用权限时打开了
对话框
底页
,则当我返回应用程序时,该对话框将不再显示

有人能详细解释一下当权限在运行时被拒绝时会发生什么吗?或者有人给我一些有用的链接吗


我对返回应用程序时调用哪些生命周期事件特别感兴趣。

简单地说,这取决于应用程序在需要权限时尝试执行的操作

例如:如果我们生活在一个要求你必须是成年人才能在YouTube上观看任何视频的国家,那么
位置
权限被拒绝的情况下,任何事情都不起作用

另一个示例:如果您想通过应用程序使用手机拍照,则应允许使用
照相机
权限


在某些情况下,应用程序的部分功能无法使用,但在极端情况下,应用程序会引发安全异常并崩溃。

根据您的观点:

我在一些应用程序中看到,当我打开
对话框
底页
时 禁用权限,当我 返回应用程序

没有生命周期回调来说明权限被拒绝后的操作,但是
ActivityCompat
上有一个方法,如果您想显示自己的
对话框/底页

所以,您可以从
ActivityCompat
调用该方法,使您自己的逻辑在为真时工作

应显示请求许可理由:

获取是否应显示具有请求权限理由的UI。只有当您没有权限,并且请求权限的上下文没有明确告知用户授予此权限的好处时,才应该这样做

比如说,

如果您编写了一个摄像头应用程序,那么用户可能会请求摄像头权限,而不需要解释请求的原因

但是,如果应用程序需要位置来标记照片,那么不懂技术的用户可能会想知道位置与拍照之间的关系。在这种情况下,您可以选择显示具有请求此权限理由的UI



第一次禁用权限时,您将在
onRequestPermissionResult()
方法中进行回调。

通过设置撤消以前授予的权限时,应用程序将强制停止。通过在调试器中查看应用程序,可以看到这一点。一旦权限被撤销,应用程序进程就会被标记为已死亡

返回应用程序将从主活动启动它。我从来没有真正研究过为什么会发生这种情况,但我认为这是因为当授予的权限被撤销时,用户可能会深入应用程序的某个位置,而该位置假定授予了该权限。当权限被撤销时,无法知道他们当前所在的屏幕是否有效


返回应用程序后,应用程序的状态将恢复,您当前的活动将重新启动,类似于配置更改。如果您所在的活动假定授予了某个权限,您可能应该在onCreate()中再次检查该权限以确保您拥有该权限。

查看本教程:,如果有任何疑问,请告诉我!感谢Jeel提供的提示,但该教程并没有真正回答我的问题。当应用程序最初拥有所需的权限时,我会对android生命周期事件感兴趣,然后,当应用程序运行时,用户禁用(在授予权限之前)权限。嗯,现在我在Pie中测试这个,行为似乎已经改变了。当权限被撤销时,应用程序不再被强制关闭。但是我被踢回了几个屏幕,以至于我不需要许可。我想我没有像我想象的那样理解这个流程!答案已更新。