2

Я разрабатываю интеграцию obb для «файлов расширения». Я заставил его работать в локальном режиме, скопировав файл .bb на SD-карту устройства (4.1), но на моих 4.2-устройствах он больше не работает.Файл расширения - невозможно загрузить .bob с/sdcard/Android/obb/на Android 4.2

1) На планшете 4.1: он работает хорошо. Я толкнул мой файл с расширением пакета с помощью ADB команды на планшете, а затем я могу найти файл и прочитать его:

adb push main.1.mypackage.obb /sdcard/Android/obb/mypackage/ 
[email protected]:/sdcard/Android/obb/mypackage/ $ ls -al 
-rw-rw-r-- root  sdcard_rw 20314171 2013-08-05 18:01 main.1.mypackage.obb 

2) На 4,2: ту же процедуру, как описано выше, файл не " видимый ", оба метода exists() и canRead() в основном действии возвращают false.

adb push main.1.mypackage.obb /sdcard/Android/obb/mypackage/ 
[email protected]:/sdcard/Android/obb/mypackage/ $ ls -al 
-rw-rw-r-- root  sdcard_rw 20314171 2013-08-05 18:54 main.1.mypackage.obb 

Решение: Оттуда, я исследовал с помощью приложения «приложение Android File Transfer», и я обнаружил, что папка ФЖДА пуста от инструмента ... так что это не одни и те же папки, я нажимаю данные в ...

Я загрузил .obb с помощью приложения «Android File Transfer», а затем он работает ... Но в этом случае я не знаю, где хранится файл (не на SD-карте, я думаю?)

Android File Transfer solution that works when uploading manally the file

Итак, ребята, мне нужно, чтобы ча nge на 4.2 для доступа к моему файлу .obb? Спасибо заранее

Дополнительные сведения:

а) Я сделал базовый тест, чтобы проверить файл с помощью существования "File.Exists() +" CanRead = "+ file.canRead()" с Environment.getExternalStorageDirectory:

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() 
      + "/Android/obb/packagename/main.1.packagename.obb"); 

б) процедура по сценарию, так что проблема не исходит от ручной ошибки (и тройной проверки Everythings)

EDIT

с) Подытоживая:

  • С «ADB толчок» на 4.2 он работает на «нормальных» данных: Если я ставлю папку с изображениями в/SDCard/моя_папка/она работает, но не ниже/sdcard/android /.

  • Андроида передачи файлов показывает «Android/ÖBB» папку в корневом каталоге и .obb файлы видны из кода в этом случае, но:

  • Я не могу подтвердить это на/SDCard от " Android File Transfer App ', меня беспокоит то, что «adb shell ls/sdcard/Android/obb» показывает, что папка пуста ...
  • Я не могу использовать тот же скрипт для 4.1 и 4.2, проверить процедуру производства и использовать его в dev, чтобы сэкономить много времени с помощью легкого apk (и сэкономить время на сборке & времени развертывания) ...

РЕШЕНИЕ ИСПОЛЬЗОВАТЬСЯ ВНУТРИ

< Для 4.1

adb push main.1.mypackage.obb /sdcard/Android/obb/mypackage/ 

Для> = 4.2

adb push main.1.mypackage.obb /mnt/shell/emulated/obb/mypackage/ 
+0

Нашли другое сообщение по теме, но без успеха: https://groups.google.com/forum/#!topic/android-developers/TNjBYB2oKsw и http://forum.xda-developers.com/showthread.php ? t = 2110184 – Gros

ответ

0

Как я понял, все работает отлично, когда вы вставляете файл в файловую систему Android вручную. В этом случае я считаю, что проблема связана с некоторой ошибкой в ​​adb или некоторой опечаткой. В любом случае вам нужно будет provide Google services integration, чтобы загрузить файлы APK с серверов Google, и вам не придется иметь дело с adb или любыми другими утилитами, поэтому я думаю, что вам не нужно сосредоточиться на этой проблеме.

не на SD-карте, я думаю?

Если он находится в папке /sdcard/ - это на SD-карте.

+0

Я добавил разъяснение (пункт c) в главный вопрос. – Gros

+0

На данный момент на Android 4.2 я использую передачу файлов Android для проверки правильности, а не нажатия adb, которое не работает. У меня есть обходной путь, поэтому я сосредоточен на следующих шагах ... – Gros

+0

@Gros пытается использовать Android Monitor из SDK, чтобы нажать .obb в папку '/ sdcard /'. И, BTW, у вашего устройства 4 даже есть SD-карта? =) –

0

Android установил какой-то безопасный защитник в 4.2 для папки obb (для взломанных игр и т. Д.). Посмотрите дополнительную информацию в google's android api

+0

Я думаю, что это «безопасный охранник», но я не нашел никакой документации об этом. Вы предоставляете ссылку на документацию, которую я следил, но я не видел никакой «дополнительной информации» об этом, можете ли вы процитировать какую-либо часть о защите? – Gros

4

Используйте монитор (Android Debug Monitor), чтобы поместить файлы расширения на свое устройство для тестирования.

Мой опыт работы с Nexus 7 (не коренятся) с помощью: командной строки ADB против монитора (Android Debug Monitor) графического интерфейса:

1) ADB толчок main.1.com.mypackage.obb/SDCard/Android/obb/com.mypackage/main.1.com.mypackage.obb

выглядит успешным. Однако приложение не могло найти файл расширения, и проводник файлов на устройстве не смог отобразить файл. Примечание: устройство не было внедрено, и я не смог запустить adb root.

2) с помощью монитора gui - запуск из командной строки с помощью: ../sdk/tools/monitor Использование монитора gui показало, что расположение/sdcard фактически указывает на несколько разных ссылок на файлы. Чтобы приложение увидело файл расширения, мне пришлось поместить файл расширения в соответствующее место в соответствующем файле - в моем случае это было /mnt/shell/emulated/obb/com.mypackage - какая оболочка adb все еще не отображалась, однако приложения на устройстве могут попасть в файл.

0

я нажимаю мои скопированные OBB файлы образуют множество игр и предпочитают, чтобы подтолкнуть их обратно через ADB и я всегда должен использовать полную структуру папок линию так, попробуйте использовать

/mnt/sdcard/Android/obb/AppDataFolderNameHere 

так для вас код будет ;

adb push main.1.mypackage.obb /mnt/sdcard/Android/obb/mypackage/ 
[email protected]://mnt/sdcard/Android/obb//mypackage/ $ ls -al 
-rw-rw-r-- root  sdcard_rw 20314171 2013-08-05 18:01 main.1.mypackage.obb 

многие устройства Linux просто имеют SDCard в случае папки мнт, хотя его отдельное запоминающее устройство.