местоположение файла obb android во внутренней памяти для 4.0 - 4.4

Помогите, пожалуйста, решить мою проблему с файлами obb, я добавляю downloader_library в свой проект, когда приложение запускается, он загружает для меня файл obb, это сработало хорошо. Если файл хранится на внешней SD-карте, нет проблем, приложение работает, но когда я пытаюсь использовать телефон без SD-карты, мое приложение вылетает. Я смотрю на метод, который проверяет, существует ли файл obb, и я вижу, что он всегда смотрит на SD-карту. Как я могу найти файл obb во внутренней памяти?

Этот метод проверяет, существует ли файл obb:

 static public boolean doesFileExist(Context c, String fileName, long fileSize,
        boolean deleteFileOnMismatch) {
    // the file may have been delivered by Market --- let's make sure
    // it's the size we expect
    File fileForNewFile = new File(Helpers.generateSaveFileName(c, fileName));
    if (fileForNewFile.exists()) {
        if (fileForNewFile.length() == fileSize) {
            return true;
        }
        if (deleteFileOnMismatch) {
            // delete the file --- we won't be able to resume
            // because we cannot confirm the integrity of the file
            fileForNewFile.delete();
        }
    }
 return false;
}

Этот метод - Helpers.generateSaveFileName use Environment.getExternalStorageDirectory();

fileForNewFile для 4.0 — /mnt/sdcard/Android/obb/com.example.app/main.1.com.example.app.obb fileForNewFile для 4.4 — /storage/sdcard/Android/obb/com.example.app/main .1.com.example.app.obb

Насколько я понимаю и читается во внутренней памяти, obb должен быть где-то в /data/data/com.example.app, но как получить этот каталог? И какой реальный путь: /data/data/com.example.app/obb/main.1.com.example.app.obb? /data/data/com.example.app/Android/obb/main.1.com.example.app.obb ?

На телефоне (4.4.2) без файлового менеджера SD карты покажите мне путь после загрузки - /Android/obb/com.example.app/main.1.com.example.app.obb но телефон без рута и я не вижу верхний каталог, где находится эта папка Android.

Я совсем запутался, пожалуйста, помогите.


person Never_be    schedule 14.10.2014    source источник


Ответы (1)


Каталог, который вы пытаетесь прочитать (тот, что содержит data/data), является результатом getFilesDir(). Можете ли вы попробовать здесь: /mnt/obb/packagename/ с обычным разрешением чтение хранилища? Папка obb уже должна существовать (по крайней мере, для эмуляторов). Другие пути уже должны быть созданы, если вы пытались получить доступ к папкам с помощью руководства, приведенного на веб-сайте разработчиков Android.

Также вам не нужен root для доступа к файлам через ADB, и вы также можете передавать/извлекать их через ADB с помощью основных команд.

person milosmns    schedule 30.11.2014