Android java.io.FileNotFoundException:*** (Permission denied)

大家都知道,Android 6.0中,某些权限属于Protected Permission,例如:读写手机存储权限,仅仅在AndroidManifest.xml中申明是无法真正获取到权限的,打开手机的权限管理页面,我们可以看见,读写手机存储权限栏是一个问号,这意味着App并未获取到该权限。

这是访问手机存储时,会报出类似下面的错误: java.io.FileNotFoundException:*** (Permission denied)

有一个简单粗暴的方法,就是在App安装完成之后,手动在手机上将该权限改为允许。

但是这种方法太low了,给用户带来的体验也很差。我们希望通过代码动态的获取此权限,用户只需要在第一次安装时,在弹出的窗口点击一下允许,就可以啦。

实现代码:

if (Build.VERSION.SDK_INT >= 23){
    int REQUEST_CODE_CONTACT = 101; 
    String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE}; 
    //验证是否许可权限 
    for (String str : permissions) { 
        if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) { 
        //申请权限 
        this.requestPermissions(permissions, REQUEST_CODE_CONTACT); 
        } 
    } 
}

PS:其它的权限小伙伴们就可以以此类推啦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值