【问题标题】:Android 6 is not able to read directory/files from SdcardAndroid 6 无法从 SD 卡读取目录/文件
【发布时间】:2017-06-28 07:49:20
【问题描述】:

在 Android-6 之前,我的应用程序一切正常。我的应用程序需要读取平板电脑的 Sdcard 中的一些文件。当我尝试在 Marshmallow 设备上对其进行测试时,它会抛出错误,即 Directory is not found while It's there.

任何人都可以帮助我可能是什么原因以及什么是快速解决方案。

【问题讨论】:

标签: android android-6.0-marshmallow android-sdcard


【解决方案1】:

如果您使用的是 Android 6.0(API 23) 或更高版本的设备,您必须在运行时请求权限

READ_EXTERNAL_STORAGE 被归类为危险权限。

所以,在实现读取外部存储逻辑之前,必须先询问用户权限

为此,首先需要将其添加到您的活动中

// Request permissions
    if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
        ActivityCompat.requestPermissions(
                this,
                new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE
        );
    }
    if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
        ActivityCompat.requestPermissions(
                this,
                new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                PERMISSION_REQUEST_READ_EXTERNAL_STORAGE
        );
    }

然后您将检查用户是否已授予权限添加此覆盖方法。

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode){
        case PERMISSION_REQUEST_READ_EXTERNAL_STORAGE:
            if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
                Log.d("PERMISSION", "SUCCESS");
            }else{
               Log.d("PERMISSION", "FAIL");
            }
            return;
        case PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE:
            if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
                Log.d("PERMISSION", "SUCCESS");
            }else{
                Log.d("PERMISSION", "FAIL");
            }
            return;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    相关资源
    最近更新 更多