java.io.filenotfoundexception: /data/x‘x‘x.jpg: open failed: eacces (permissions denied)

java.io.filenotfoundexception: /data/xxx.jpg: open failed: eacces (permission denied)

一、老生常谈的权限和Java请求权限以及AndroidMainfest
———————————————————————————
1、权限
———————————————————————————

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

其实这里还得在Android虚拟机把app的storage权限打开,
setting—>apps—>app(项目名字)—>permissions,然后打开即可,不过有意思的是,好像低版本的才找得到这个,高版本得没得找,我在高版本(AVD 31)上试过,截图里的是AVD 23
在这里插入图片描述

———————————————————————————
2、Java请求权限
———————————————————————————
在报错的方法前面调用即可

// Storage Permissions
    private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE };
 
    /**
     * Checks if the app has permission to write to device storage
     * 
     * If the app does not has permission then the user will be prompted to
     * grant permissions
     * 
     * @param activity
     */
    public static void verifyStoragePermissions(Activity activity) {
        // Check if we have write permission
        int permission = ActivityCompat.checkSelfPermission(activity,
                Manifest.permission.WRITE_EXTERNAL_STORAGE);
 
        if (permission != PackageManager.PERMISSION_GRANTED) {
            // We don't have permission so prompt the user
            ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,
                    REQUEST_EXTERNAL_STORAGE);
        }
    }

———————————————————————————
3、AndroidMainfest
———————————————————————————

android:requestLegacyExternalStorage="true"

二、不细心很容易出现相同错误,但跟着大佬的方法做了大家都说666,唯独自己这表示无效
错误和别人是一样的。。。
在这里插入图片描述

  1. 其实是自己疏忽大意了。。。,就因为画红线的地方不一样,瞎折腾三天,真实情况是基础烂得出奇,这么简单的事搞得费劲,让人捉急啊,好好听课。。。。。。

    在这里插入图片描述

  2. 如果大佬的方法试过了,网上都找遍了还是没解决,那么你是时候该想想自己是不是敲错了。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值