2

以下のコードを使用して、SD カードにファイルを作成しました。

File outputFile = new File( Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "test.jpg" );
outputFile.createNewFile();
OutputStream outputStream = new FileOutputStream( outputFile );
mBitmap.compress( Bitmap.CompressFormat.JPEG, 95, outputStream );
outputStream.flush();
outputStream.close ();

コンピューター (USB 経由で接続された電話) の Windows エクスプローラーで SD カードの内容を参照しているこのファイルを表示しようとすると、私のものを除くすべての SD カードのフォルダーとファイルが表示されます。Astro はファイルを表示しますが、サムネイルとしては表示しません。

最も奇妙なことは、これが私の電話の 1 つ (Samsung Galaxy X 電話) でのみ発生し、この電話を再起動すると、ファイルが Windows エクスプローラーと Astro のサムネイルの両方に表示されることです。

私が書いたコードに何か問題や不足があるのでしょうか?

ありがとう

4

2 に答える 2

1

画像ファイルをギャラリーに表示するには、明示的にインデックスを作成する必要があります。他のアプリケーションが同じメカニズムを使用してサムネイルを取得している可能性があると思います。以下は、書き込み直後に新しいメディア ファイルをスキャンするコードです。

 Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
 Uri uri = Uri.fromFile(outputFile);
 intent.setData(uri);
 sendBroadcast(intent);
于 2012-09-29T17:45:18.490 に答える