我无法读取用户存储,

huangapple 未分类评论50阅读模式
英文:

i can't read the user storage,

问题

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private static final String TAG = "MainActivity";
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        button.setOnClickListener(this);

        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.READ_EXTERNAL_STORAGE }, 123);
        } else {
            Log.d(TAG, "onCreate: Permission Granted");
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode) {
            case 123:
                if (grantResults != null && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    Toast.makeText(this, "Permission Granted", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show();
                }
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                String path = "/";
                File dir = new File(path);

                if (dir.isDirectory()) {
                    Log.d(TAG, "dir: Yes, I am!");
                }
                if (dir.canRead()) {
                    Log.d(TAG, "dir: Read me!");
                } else {
                    Log.d(TAG, "dir: you can't read me!");
                }
                if (dir.canWrite()) {
                    Log.d(TAG, "dir: use me!");
                } else {
                    Log.d(TAG, "dir: You Can't write me");
                }
        }
    }
}
log cat: D/MainActivity: onCreate: Permission Granted 2020-05-04
D/MainActivity: dir: Yes, I am! 2020-05-04 07:21:09.680
D/MainActivity: dir: you can't read me! 2020-05-04 07:21:09.680
D/MainActivity: dir: You Can't write me
英文:

I' am trying to list all the folders and files from user storage, I've declared the READ_EXTERNAL_STORAGE permission in android.manifest file but I don't what's wrong, I can't read the user storage

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private static final String TAG = "MainActivity";
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        button.setOnClickListener(this);
        if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                new String[] {
                    Manifest.permission.READ_EXTERNAL_STORAGE
                }, 123);
        } else {
            Log.d(TAG, "onCreate: Permission Granted");
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode,
        @NonNull String[] permissions,
        @NonNull int[] grantResults) {
        switch (requestCode) {
            case 123:
                if (grantResults != null && grantResults[0] ==
                    PackageManager.PERMISSION_GRANTED) {
                    Toast.makeText(this, "Permission Granted", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(this, "Permission Denied",
                        Toast.LENGTH_SHORT).show();
                }
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                String path = "/";
                File dir = new File(path);
                if (dir.isDirectory()) {
                    Log.d(TAG, "dir: Yes, I am!");
                }
                if (dir.canRead()) {
                    Log.d(TAG, "dir: Read me!");
                } else {
                    Log.d(TAG, "dir: you can't read me!");
                }
                if (dir.canWrite()) {
                    Log.d(TAG, "dir: use me!");
                } else {
                    Log.d(TAG, "dir: You Can't write me");
                }
        }
    }
}

> log cat: D/MainActivity: onCreate: Permission Granted 2020-05-04
> 07:21:09.680 27634-27634/co.ak.externalstorage D/MainActivity: dir:
> Yes, I am! 2020-05-04 07:21:09.680 27634-27634/co.ak.externalstorage
> D/MainActivity: dir: you can't read me! 2020-05-04 07:21:09.680
> 27634-27634/co.ak.externalstorage D/MainActivity: dir: You Can't write
> me

答案1

得分: 0

"/"根目录自Android 7起不可读。

为什么要称呼那个用户存储?

英文:

The "/" root directory is not readable since Android 7.

Why are you calling that user storage?

huangapple
  • 本文由 发表于 2020年5月4日 10:05:38
  • 转载请务必保留本文链接:https://java.coder-hub.com/61584103.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定