Где я могу разместить OBB файл для тестирования файлов расширения Android (OBB) на моем Nexus 4?

Я пытаюсь протестировать файлы расширения (OBB) в Android, следуя приведенным здесь инструкциям: http://developer.android.com/google/play/expansion-files.html

Я нахожусь на том этапе, где мне нужно протестировать мое приложение на моем Nexus 4.

Я сгенерировал мой файл .bb с помощью jobb и adb-нажал его на устройстве в этом месте:

/mnt/shell/emulated/0/Android/obb/my.package/main.1.my.package.obb

Когда приложение запускается, он не находит файл.

Метод:

Helpers.doesFileExist(context, fileName, xf.mFileSize, false)

возвращает false для моего файла.

Я отлаживал и выяснял, что ищет файл в:

/storage/emulated/0/Android/obb/my.package/main.1.my.package.obb

В частности, это путь, возвращаемый:

Helpers.generateSaveFileName(c, fileName)

В/storage/emulated/0, возвращаемом Environment.getExternalStorageDirectory(), не существует просмотр устройства с оболочкой adb.

Но это во время выполнения, внутри приложения, я также проверил, что он содержит: он содержит почти те же самые вещи, которые я нашел в /mnt/shell/emulated/ 0, он содержит директорию Android/obb, которая пуста.

Как я узнал путь /mnt/shell/emulated/ 0/Android/obb/my.package/main.1.my.package.obb, где я разместил свой файл obb:

$ adb shell
$ ls -ld sdcard
lrwxrwxrwx root     root              2013-10-16 17:34 sdcard -> /storage/emulated/legacy
$ ls -ld /storage/emulated/legacy
lrwxrwxrwx root     root              2013-10-16 17:34 legacy -> /mnt/shell/emulated/0

И внутри этого я уже нашел каталог Android/obb, пустой.

Итак, вопрос: где я должен поместить свой файл obb для того, чтобы он находился в правильном положении во время выполнения?

Я сделал все, что сказал:

  • создал проект приложения на рынке для получения открытого ключа

  • генерируется случайный массив из 20 байтов (соли)

  • интегрированное play_licensing/library и play_apk_expansion/download_library

  • написал мою службу/приемник

  • сделал чек с помощью помощников и т.д. точно так, как говорится в документации.

Я полагаю, что все работает, но я пока не могу выпустить в Play Маркете! Мне нужно протестировать локально, и мне придется часто менять файл obb на этой начальной стадии разработки.

Я не могу протестировать эмулятор, потому что я использую 3D-камеру и камеру.

Ответ 1

Поскольку поддержка пользователей с поддержкой Android 4.2 была добавлена.

Чтобы поддерживать Android, монтируйте эмулированный диск для каждого пользователя, действующего как слой песочницы вокруг фактической файловой системы: это позволяет Android обрабатывать изящно либо совместное использование файлов между пользователями как личные файлы.

Короче говоря:

/storage/emulated

- эмулированная файловая система.

если вы введете этот каталог из оболочки adb, вы можете увидеть

/storage/emulated/obb

Каталог. Иногда это почему-то не появляется (см. Ниже, что делать, если это произойдет)

Это не в /Android/obb, а в правильном каталоге, куда поместить файл вашего приложения /obb!

Если вы не видите этот каталог, попробуйте найти:

/mnt/shell/emulated/obb

Вы можете разместить свой файл там.

Он будет правильно выбран во время выполнения, заканчивающемся на

/storage/emulated/0/Android/obb/my.package/main.1.my.package.obb

путь.

Я думаю, что документация на Android должна объяснить это.

(Я отвечаю на свой вопрос, потому что узнал, как его решить, написав его.)

Ответ 2

Для меня правильное местоположение: mnt/sdcard/Android/obb/nameofyourpackage/

НЕ "/mnt/shell"