私はここのガイドに従ってAndroidで拡張パックファイル(OBB)をテストしようとしています: http://developer.Android.com/google/play/expansion-files .html
Nexus4でアプリをテストする必要がある段階にあります。
Jobbを使用して.obbファイルを生成し、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)
Environment.getExternalStorageDirectory()によって返される/ storage/emulated/0は、adbシェルでデバイスを参照して存在しません。
ただし、実行時に実行されます。アプリ内で、内容も確認しました。/mnt/Shell/emulated/0で見つけたものとほぼ同じものが含まれ、Android/obbディレクトリが含まれています。これは空です。
Obbファイルを配置したパス/mnt/Shell/emulated/0/Android/obb/my.package/main.1.my.package.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ファイルを正しい位置に配置するために、どこにobbファイルを配置する必要があるかということです。
私はそこで言われたすべてをしました:
公開鍵を取得するためにマーケットでドラフトアプリケーションを作成しました
20バイト(塩)のランダム配列を生成しました
統合されたplay_licensing/libraryとplay_apk_expansion/download_library
私のサービス/レシーバーを書いた
ドキュメントに記載されているとおり、ヘルパーなどを使用してチェックを行いました。
すべてがうまくいくと思いますが、Playストアでまだリリースできません!ローカルでテストする必要があり、開発のこの初期段階でobbファイルをかなり頻繁に変更する必要があります。
3Dとデバイスカメラを使用しているため、エミュレータでテストできません。
Android 4.2以降、マルチユーザーサポートが追加されました。
これをサポートするには、Android実際のファイルシステムの周りのサンドボックスレイヤーとして機能するユーザーごとにエミュレートされたディスクをマウントします。これにより、Androidユーザー間でのファイル共有を適切に処理できます。いずれかの個人ファイル。
短編小説:
/storage/emulated
エミュレートされたファイルシステムです。
adb Shellからそのディレクトリに入ると、
/storage/emulated/obb
ディレクトリ。何らかの理由で表示されない場合があります(これが発生した場合の対処方法については、以下を参照してください)
/ Android/obbにはありませんが、アプリパッケージ/ obbファイルを配置するのに適したディレクトリです。
そのディレクトリが表示されない場合調べてみてください:
/mnt/Shell/emulated/obb
そこにファイルを置くことができるはずです。
実行時に正しくピックアップされ、で終了します。
/storage/emulated/0/Android/obb/my.package/main.1.my.package.obb
道。
Androidドキュメントでこれを説明する必要があると思います。
(書きながら解決する方法を見つけたので、自分の質問に答えます。)
私にとって正しい場所は次のとおりです:mnt/sdcard/Android/obb/nameofyourpackage /
「/ mnt/Shell」ではありません