Я пытаюсь получить пути к моему внутреннему хранилищу и моему внешнему хранилищу (съемная SD-карта).
Я попробовал вот что:
Внутренний путь
path = getActivity().getExternalFilesDirs(null)[0].getAbsolutePath();
Внешний путь
path = getActivity().getExternalFilesDirs(null)[1].getAbsolutePath();
Logcat
Внутренний путь возвращает:
/storage/emulated/0/Android/data/com.package./files
И с помощью SubString Мне удалось перейти по этому пути
/storage/emulated/0/
Код подстроки
int index = path.lastIndexOf("/Android/data/");
if (index > 0){
path = path.substring(0, index);
Log.d(TAG, "value path0: " + path);
}
Для внешнего пути я проделал то же самое с SubString , и он возвращает
/storage/3EC7-2342
Теперь я не уверен, что этохорошо для жесткого кодирования String "/ Android / data /" , потому что я не уверен, что у всех устройств есть эта строка в их пути, и она может работать на моем устройстве, но, возможно, не на других.
Любой другой способ получить Абсолютный путь из внутреннего и внешнего хранилища (sdcard) ?
getActivity().getExternalFilesDirs(null)[0].getAbsolutePath();
путь Logcatзначение, когда я использую код выше.
/storage/emulated/0/Android/data/com.package./files
Всегда возвращает слишком длинный путь, мне нужно добраться до корня внутренней и внешней памяти.