5
回答
android 6.0 api
终于搞明白,存储TCO原来是这样算的>>>   
android 6.0下android.os.Environment.getExternalStorageDirectory()取得的文件目录用listFiles()方法为什么会取不到文件呢?
举报
Rogin
发帖于2年前 5回/854阅
共有5个答案 最后回答: 2年前

在Manifest有申请读写外部存储空间的权限吗?

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
--- 共有 1 条评论 ---
Rogin我加完这两句还是没用,我用的是nexus5x,没有外置SD卡的 2年前 回复

在6.0里必须进行实时权限申请

 private boolean checkPermission(String permission, int requsetCode){

        int hasPermission = checkSelfPermission(permission);
        if (hasPermission != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{permission}, requsetCode);
            return false;
        } else {
            return true;
        }

    }

 @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
         if(requestCode == 1){
            //检查grantResults看看是否用户允许该权限。
        } else {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }


最好再检查一下系统版本。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, 1);
}

顶部