В разрешении отказано после добавления «WRITE_EXTERNAL_STORAGE» в AndroidManifest.xml - PullRequest
7 голосов
/ 24 декабря 2011

решение: тестовый целевой проект должен также добавить WRITE_EXTERNAL_STORAGE в AndroidManifest.xml

этот вопрос возник из проекта тестирования Android, который не может записать результаты теста в SDcard. Добавление WRITE_EXTERNAL_STORAGE в целевой тестовый проект может решить эту проблему.


Всегда выдавать разрешение, когда я использую приведенный ниже код для записи XML-файла в SD-карту эмулятора. Я добавил WRITE_EXTERNAL_STORAGE "в AndroidManifest.xml.

        @Override
public void onStart(){

    try {
        File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
        myWriter = new FileWriter(new File(root, TEST_RESULT+".xml"));          
        startResultOutput(myWriter);
    } catch (IOException e) {
        Log.d("TestInfo", "after new FileWriter: "+e.getMessage());
    }
    super.onStart();

}

перехватил IOExcetion, сообщение было: после нового FileWriter: /mnt/sdcard/InterFace_test_result.xml (в доступе отказано)

Ниже приведен код манифеста

<application android:icon="@drawable/icon" android:label="@string/app_name">

<uses-library android:name="android.test.runner" />
</application>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

SD-карта была смонтирована, потому что я могу использовать другое приложение для записи файла на внешнюю SD-карту.

Кто-нибудь может дать мне какое-нибудь предложение?

PS: система эмулятора 2.3.3

Ответы [ 2 ]

1 голос
/ 24 декабря 2011

Проблема:

Я могу понять, что вы добавляете permission два раза

  1. один раз в тег Application как атрибут
  2. и второй раз, используя <use-permission>

Решение:

Попробуйте удалить любой из них.

0 голосов
/ 12 июля 2012

Вы должны добавить тег разрешения <uses-permission> перед тегом <application>.

...