今天试验动态获取权限,发现给一个Activity动态请求权限成功后,项目中的其他activity 都被授权,我手机诺基亚x5,系统Android9.0,看其他文章都说每个Activity都要单独申请权限,是不同的手机有不同授权机制吗?

解决方案 »

  1.   

    android小白,不怎么懂
      

  2.   

    android 权限配置在清单文件,针对的是整个应用进程,即使动态获取,也没听说过有单个activity获取权限的说法。一般用到动态获取权限,都是在应用第一次打开的初始界面或者第一次使用该权限的时候获取的。
    你在哪里看到说每个activity都要单独申请权限了?
    你可以试验下,在启动页获取下sdcard写权限,然后看看第二个第三个activity不获取权限能不能写入sdcard
      

  3.   

    多谢各位!我是看到别人博客,把检测权限、动态申请权限的代码写到baseactivity 中,然后项目的activitiy 都继承它,博客还说每个 activity 都要单独申请、fragment 也要单独申请权限。所以我也实验了下,结果同2楼、3楼,所以有些困惑。
      

  4.   

    “每个Activity都要申请一下”确实说的不对,应该是”每次使用权限时都要判断一下“。
    比如每当你要使用权限的时候(比如拍照),你根本就不不知道用户到底有没有授权过,所以都要判断一下
      

  5.   

    说是每个Activity都要申请,其实就是只要可能出现权限丢失的问题的地方就要判断权限是否已申请。
      

  6.   

    一个APP某个页面获取到权限了,那么可以说这个APP所有的页面都已经获取到这个权限了。之所以每个页面都写该权限,是因为之前申请过的权限有可能手动在系统设置中关掉了。比如说第一个页面下载附件要判断是否有存储权限,获取后 理论上整个APP每个需要下载的地方都已经有了存储权限,但是因为有可能用户在系统设置中把存储权限关掉了,所以为了安全,APP其他下载的地方还是要判断是否获取存储权限。