Intereting Posts

Получить список внешнего хранилища в Android 4.3

Я просматривал /etc/vold.fstab, чтобы получить список внешнего хранилища. Он отлично работает до тех пор, пока Android 4.3 не удалит файл Google. Я знаю, что теперь используется унифицированный файл /fstab.*, но который недоступен без root.

Итак, в Android 4.3, что мне делать, чтобы получить список внешних хранилищ?

Мой код выглядит примерно так. Теперь он включает как несъемную внутреннюю, так и съемную внешнюю память.

File voldFile = new File("/system/etc/vold.fstab"); fr = new FileReader(voldFile); br = new BufferedReader(fr); String line = br.readLine(); while (line != null) { if (line.startsWith("dev_mount")) { String[] tokens = line.split("\\s"); File mountPoint = new File(tokens[2]); if (mountPoint.isDirectory() && mountPoint.canRead()) list.add(tokens[2]); } line = br.readLine(); } 

Я закончил вывод / proc / mounts для текущего хранилища. Код, аналогичный приведенному ниже.

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { File voldFile = new File("/proc/mounts"); fr = new FileReader(voldFile); br = new BufferedReader(fr); String line = br.readLine(); while (line != null) { Log.d(TAG, line); if (line.startsWith("/")) { String[] tokens = line.split("\\s+"); if ("vfat".equals(tokens[2])) { File mountPoint = new File(tokens[1]); if (!tokens[1].equals(defaultMount)) if (mountPoint.isDirectory() && mountPoint.canRead()) list.add(tokens[1]); } } line = br.readLine(); } }