Мне нужна помощь в получении прикрепленной карты памяти, доступной для записи из моего приложения. Версия для Android, которую я использую, - Marshmellow. Я запросил разрешение на запуск, используя приведенный ниже код.Android - Внешняя карта памяти не может быть записана в моем приложении
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||
(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_WRITE_STORAGE);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_WRITE_STORAGE) {
if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
Log.d(TAG, "Permission Granted");
}
}
}
Я также проверил настройки и предоставил разрешение на запись. Ниже приведены два места хранения у меня есть для телефона
/storage/emulated/0 (Internal Memory, Writable)
/storage/9C33-6BBD (SDCard, Not writable, only readable)
Я попытался следующий код просто проверить, если карта памяти для записи
File file = new File("/storage/9C33-6BBD");
file.canWrite() // returns false every time
Я не уверен, что я пропускаю или делать неправильно, другие приложения, похоже, не имеют проблем с записью на карту памяти.
Я также использовал оболочку adb и смог создать папку на своей карте памяти.
Я также добавил разрешение ниже в моем файле манифеста.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Пожалуйста, дайте мне знать, если вам нужно больше деталей. И заранее спасибо за помощь.
Возможный дубликат [Как написать файл на внешней SD-карте, а не на устройстве?] (Http://stackoverflow.com/questions/38247666/how-to-write-a-file-in-external- SD-карта и не-в-устройства-хранение) –