2016-06-03 2 views
1

Я пытаюсь получить путь сэмулированному хранения в моем андроид приложение, с помощью этогоSystem.getenv («EMULATED_STORAGE_TARGET») возвращает нуль на Moto X Play (Android 6)

System.getenv("EMULATED_STORAGE_TARGET") 

Это прекрасно работает на всех до сих пор за исключением Moto X play (Android 6.0). Он возвращает null в этом случае, хотя присутствует эмулированное хранилище. Путь должен быть /storage/emulated/, но System.getenv("EMULATED_STORAGE_TARGET") возвращает null. Я попытался найти решение, но ничего не нашел. Может кто-то, пожалуйста, помогите мне. Благодаря !!

+0

У меня такая же проблема, на Asus Zenfone2, Зефир 6.0.1. Любая удача в этой проблеме? – HendraWD

+0

Эй, я обнаружил, что эта команда дает разные результаты в зависимости от производителя. Вам придется использовать другой подход, чтобы решить вашу проблему, а не использовать указанную выше команду. – varunkr

+0

Да, я использую другой подход, чтобы получить EMULATED_STORAGE_TARGET, но я не знаю, оптимизирован ли он. Я опубликую свое решение здесь – HendraWD

ответ

0

Так вот мой обходной путь, чтобы получить EMULATED_STORAGE_TARGET

List<String> paths = new ArrayList<>(); 
File[] files = context.getExternalFilesDirs(null); 
for (File file : files) { 
    String applicationSpecificAbsolutePath = file.getAbsolutePath(); 
    String emulatedRootPath = applicationSpecificAbsolutePath.substring(0, applicationSpecificAbsolutePath.indexOf("Android/data")); 
    paths.add(emulatedRootPath); 
} 
//do what you want with the result paths 

Если у Вас есть вопрос или предложение, дайте мне знать

Смежные вопросы