Можно ли читать данные, которые были отдельно скопированы на SD-карту Android, не имея прав root? - PullRequest
2 голосов
/ 04 мая 2010

Редактировать: это была ошибка пользователя (извините). Я ответил на это ниже.

Я занимаюсь разработкой приложения, которому необходим доступ к данным на SD-карте. Когда я запускаю на своем устройстве разработки (odroid с Android 2.1), у меня есть root-доступ и я могу построить путь, используя:

File sdcard = Environment.getExternalStorageDirectory();
String path = sdcard.getAbsolutePath() + File.separator + "mydata"
File data = new File(path);
File[] files = data.listFiles(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String filename) {
        return filename.toLowerCase().endsWith(".xyz");
    }});

Однако, когда я устанавливаю это на телефон (2.1), где у меня нет доступа с правами root, я получаю файлы == null. Я предполагаю, что это потому, что у меня нет прав на чтение данных с SD-карты. Я также получаю файлы == null, когда просто пытаюсь перечислить файлы на / sdcard. То же самое относится и к моему построенному пути.

Кроме того, это приложение не предназначено для распространения через магазин приложений и должно использовать данные, скопированные отдельно на SD-карту, так что это реальный вариант использования. Это слишком много данных, чтобы положить в res / raw (я пытался, это не сработало).

Я также попытался добавить:

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

в манифест, хотя я только хочу прочитать SD-карту, но это не помогло. Я не нашел тип разрешения для чтения хранилища.

Вероятно, есть правильный способ сделать это, но я не смог его найти. Любые советы будут полезны.

1 Ответ

1 голос
/ 04 мая 2010

Итак, я потратил полчаса, чтобы написать этот вопрос, а затем отключил телефон и подключил его, не монтируя его как диск.

Это была проблема. Теперь это работает.

Извините, что потратил ваше время. : /

...