Не можете получить доступ к папке android / data? - PullRequest
1 голос
/ 11 июня 2010
  try {
     Runtime rt = Runtime.getRuntime();
     Process pcs = rt.exec("ls -l /data");
     BufferedReader br = new BufferedReader(new InputStreamReader(pcs
           .getInputStream()));
     String line = null;
     while ((line = br.readLine()) != null) {
        Log.e("line","line="+line);
     }
     br.close();
     pcs.waitFor();
     int ret = pcs.exitValue();
     Log.e("ret","ret="+ret);
  } catch (Exception e) {
     Log.e("Exception", "Exception", e);
  }

печатать только «ret = 0», как правильно печатать путь?

Ответы [ 4 ]

4 голосов
/ 11 июня 2010

Android защищает свои внутренние каталоги. Вы можете получить доступ к вашему каталогу только под /data/data/your_package. Я считаю, что обычный пользователь не имеет Read привилегий для каталога /data на обычном устройстве.

1 голос
/ 04 мая 2011
Папка данных

недоступна на устройстве, за исключением системных процессов.Вы не можете получить доступ к папке данных телефона без рута через adb.Вы можете получить доступ к папке данных эмулятора или рутованных телефонов.

0 голосов
/ 11 июня 2010

Если вы хотите получить доступ к папке / data не из кода Java, а из консоли вашего ПК, вы можете использовать команду adb shell.он не имеет ограничений.

не забудьте запустить эмулятор или подключить телефон через USB перед запуском

0 голосов
/ 11 июня 2010

Вы пытались сделать это с вашим собственным приложением, а не порождать другой процесс (например, Runtime.exec ())

File dataDir = new File("/data");

    String[] files = dataDir.list();

    for (int i = 0 ; i < files.length ; i++ ) {
        Log.d(TAG, "File: "+files[i]);
    }

Кроме того, я бы посмотрел на различные разрешения на чтение, возможноеще один способ получить данные, которые вы ищете, с помощью ContentProviders.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...