Приложение не работает после моего обновления Mibox 4K для Android Oreo
Код поиска внешнего хранилища
private String[] getUsbStoragePaths()
{
List<String> result = new ArrayList<>();
File storageDir = new File("/storage");
if(storageDir.isDirectory()) {
File[] subDir = storageDir.listFiles();
for(File dir : subDir) {
if(dir.canRead()) {
result.add(dir.getAbsolutePath());
}
}
}
return result.toArray(new String[0]);
}
private List<File> getSubDirs(String path) {
List<File> result = new ArrayList<>();
File root = new File(path);
if (root.exists() && root.canRead()) {
File[] subDirs = root.listFiles(); ->>>>>> alway null
if (subDirs !=null)
{
for(File dir: subDirs)
{
if (dir.isDirectory() && dir.canRead())
{
result.add(dir);
}
}
}
}
return result;
}
В моем хранилище USB есть подпапка
Корень
---- SubDir1
---- SubDir2
---- SubDir3
---- Файл1
разрешение в приложении
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
и запросить разрешение во время выполнения
private void requestStoragePermission() {
if (!hasPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) ||
!hasPermission(, Manifest.permission.READ_EXTERNAL_STORAGE)) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
}
private boolean hasPermission(final String permission) {
return PackageManager.PERMISSION_GRANTED == getApplicationContext().getPackageManager().checkPermission(
permission, getApplicationContext().getPackageName());
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Other things
requestStoragePermission();
}
Результат метода getSubDirs пуст,
File [] subDirs = root.listFiles (); - >>>>>> всегда null