一次性权限描述如下:
在 Android 11 中,每当您的应用请求与位置、麦克风或摄像头相关的权限时,面向用户的权限对话框都会包含一个名为 Only this time 的选项,如图 1 所示。如果用户在对话框中选择此选项,您的应用程序被授予临时一次性权限。您的应用只有在满足以下条件之一的情况下才能访问相关数据:
自从用户授予一次性权限后,您的应用程序的活动就一直可见。
当用户授予权限并且从那时起一直在运行前台服务时,您的应用程序是可见的。只要前台服务继续运行,即使用户将您的应用程序移至后台,您的应用程序也将保留该权限。
如果两个条件都不成立,则无论目标 SDK 版本如何,都需要再次向用户请求权限。
所以,为了尝试这个新功能,我做了以下事情:
- 我创建了一个使用相机的应用程序,没有前台服务。
- 出现提示时,我授予该应用一次性相机权限。
- 之后,我尝试按 Home 或打开另一个应用程序将我的应用程序发送到后台。
我认为这是应该撤销许可的时候,但事实并非如此。当我回到我的应用程序时,我仍然可以打开相机。
那么,究竟何时撤销一次性许可?非常感谢!