从“设置”屏幕授予用户更改权限

And*_*eky 5 permissions android android-permissions

应用程序需要两个权限

  1. 读取手机状态
  2. 相机

应用程序有以下屏幕:

屏幕 A:Splash(根据权限状态处理屏幕导航)

屏幕 B:权限屏幕(如果用户未授予电话权限)

屏幕 C:条款和条件屏幕

启动时,App 会检查是否授予了手机权限。如果允许,应用程序将打开屏幕 C,否则它将保留在同一屏幕 B 上。

脚步:

  1. 打开应用程序 -> Splash -> 权限屏幕
  2. 单击“授予权限”-> 权限对话框-> 拒绝权限
  3. 点击“打开设置”
  4. 授予“相机”权限(不是手机权限)
  5. 点击设备的“返回”按钮并返回应用程序。
  6. 权限屏幕将显示为未授予“电话”权限。
  7. 再次重复步骤 #2 和 #3
  8. 现在删除“相机”权限并授予“手机”权限(因为我们更改了相机权限,应用程序进程将被终止并重新启动)。
  9. 重复第 5 步,将显示 Splash 和屏幕 C(条款和条件)。
  10. 再次点击“返回”按钮,将显示相同的屏幕 C(屏幕 C 在后堆栈中有两个实例)

我可以使用'CLEAR_TASK'和 ' CLEAR_TOP'标志和 startActivity,目的是知道当用户更改时我们的应用程序会发生什么,设置权限。

观察:

  1. 当用户授予权限时,我们的申请流程将不起作用。

  2. 当用户删除授予的权限时,Android 应用程序将终止并重新启动应用程序。(如果发生这种情况,那么为什么会有两个 T&C 屏幕实例?)

我在这里有点困惑!!

yas*_*786 0

/**** If user changes, permission from settings it will again ask for permission to 
      granted.You should always check if user changes permission from settings
      using below code ***/ 

if(checkSelfPermission(Manifest.permission.your_permission_name) == PackageManager.PERMISSION_GRANTED)
Run Code Online (Sandbox Code Playgroud)