я не могу прочитать пользовательское хранилище, - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь перечислить все папки и файлы из пользовательского хранилища, я объявил разрешение READ_EXTERNAL_STORAGE в файле android.manifest, но я не понимаю, что не так, я не могу прочитать пользовательское хранилище

    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");
                }
        }
    }
}

журнал кат. 2020-05-04 07: 21: 09.680 27634-27634 / co.ak.externalstorage D / MainActivity: dir: вы не можете прочитать меня! 2020-05-04 07: 21: 09.680 27634-27634 / co.ak.externalstorage D / MainActivity: dir: Вы не можете написать мне

1 Ответ

0 голосов
/ 04 мая 2020

Каталог "/" root недоступен для чтения с Android 7.

Почему вы называете это хранилище пользователя?

...