Android4.2 では、新しい属性multi-userがありました。
メディアをダウンロードすると、ファイルパスに問題があることがわかりました。
例:
画像形式の Web サイトをダウンロードするとき、この行は有用なログ情報でした。
I/DownloadThread( 1306): mInfo.mHint = file:///storage/emulated/0/Download/girl.jpg
ただし、 /storage/emulated/の下に0ディレクトリが見つかりませんadb shellを使用します
つまり、このパス/storage/emulated/0/Download/girl.jpgを C/C++ の open 関数で使用することはできません
ステップバイステップのAndroidダウンロードファイル:
- ブラウザーは、ダウンロードに必要なものに関する情報を取得します (DownloadHandler.java)
- ブラウザー トリガー DownloadManagerService は、情報をdownloads.dbに挿入します。
- downloads.dbが変更されると、ファイルをダウンロードするための新しい Downloadthread が作成されます。
質問:
- /storage/emulated/0/ディレクトリが存在するのはなぜですか (マルチユーザーですか?)、adb shellで見つけることができるのはなぜですか?
- /storage/sdcard0/や/storage/sdcard1/ではなく/storage/emulated /0/です。なぜですか?
- 異なるブランチを持つ Android4.1 VS Android4.2 Environment.UserEnvironment(int userId)(Environment.java)
ありがとう
曹鵬