2016-06-09 3 views
1

У меня есть существующее приложение в магазине и используется «Environment.getExternalStorageDirectory()» для доступа к хранилищу. Этот код работал от 2.3 до Lollipop (на моей Galaxy S5, Verizon), позволяя пользователям читать/записывать в каталог под названием Environment.getExternalStorageDirectory()/MyFooBar. Недавно мой S5 был обновлен до 6.0 Marshmallow, и теперь мой S5 (и клиенты тоже) получает ошибку, которую/storage/emulated/0/MyFooBar не может быть создан.мое приложение, использующее Environment.getExternalStorageDirectory()

За API API API для среды Environment.getExternalStorageState() и сопоставления с Environment.MEDIA_MOUNTED утверждает, что он установлен, а Environment.isExternalStorageRemovable() - нет.

Все эти звонки были одинаковыми, и теперь w/S5 и Marshmallow сломаны.

Любая помощь будет оценена по достоинству.

Спасибо, Джим

ответ

0

Начиная с Android 6.0 (уровень API 23), пользователи предоставлять разрешение приложения в то время как приложение работает, не при установке приложения.

WRITE_EXTERNAL_STORAGE - это опасное разрешение, и оно не предоставляется автоматически, поэтому вам необходимо внедрить новую схему разрешений, чтобы заставить ее работать с Android Marshmallow.

https://developer.android.com/training/permissions/requesting.html

+0

отличная. огромное спасибо за ваш ответ. – user3123813

+0

, пожалуйста, отметьте его как принятый, если он сработает для вас. Благодаря! –

Смежные вопросы