2

Android4.0.2を搭載したSamsungNexusで非常に奇妙な問題が発生しています。基本的にユーザーがボタンを押すたびにファイルを作成する簡単なプログラムを作成しました。私のプログラムは、Galaxy Nexus Windows / MacのようにSDカード上のそれらのファイルを見ることができない他のデバイスでうまく機能していますが、adbシェルを実行すると、SDカード上のすべてのファイルが表示されます。

Android 4.0.4を搭載した別のNexusでこれを再テストしましたが、結果は同じです。

理由は何でしょうか?

4

1 に答える 1

11

おそらく、を介してファイルにインデックスを付ける必要がありますMediaScannerConnection昨年のブログ投稿から自分を引用:

... MTPの内容は、外部ストレージの文字通りの内容に基づいていません。代わりに、MTPの内容は、MediaScannerConnectionによってスキャンされたファイルに基づいています。ファイルを外部ストレージに書き込む場合、そのファイルがMediaScannerConnectionによってスキャンされるまで、およびそのファイルがスキャンされない限り、MTPを介してユーザーに表示されることはありません。

外部ストレージは再起動時にスキャンされ、場合によっては定期的にスキャンされます。ユーザーは、SDRescanなどのユーティリティを介して手動でスキャンを強制できます。ただし、最良の答えは、MediaScannerConnectionでscanFile()を使用して、ファイルを閉じた後にメディアデータベースを更新することです。これにより、ユーザーはファイルをすぐに利用できるようになります。

于 2012-05-17T21:12:10.640 に答える