2

コマンド File.delete() を使用して、内部メモリ (ASUS TF101) からいくつかのファイルまたはディレクトリを削除しようとしています。ただし、Android ファイル エクスプローラーを使用すると、ファイルがどのように削除されたかを確認できますが、Windows エクスプローラーを使用すると、ファイルは引き続き表示されます。

MediaScannerConection を作成するだけでファイルを追加する (およびメソッド scanFile を使用する) ときに、同様の問題を解決しました。

この問題を解決する方法を知っている人はいますか?もちろん、最終ユーザーがこの「解決策」を気に入らないため、デバイスを再起動することは受け入れられません。

4

2 に答える 2

3

このスレッドでmanishaの回答を参照してください: Android file delete leave empty placeholder in Gallery

私の場合、写真を保存してから MediaScannerConnection を使用してスキャンしたため、問題なく動作しました。スキャンが終了すると、そのファイルの URI が得られ、問題なく次のコードを使用できます。

getContentResolver().delete(imageUri, null, null);

これがうまくいくことを願っています。これは、Android システムにインテントを送信して SD カードの再マウントを強制するよりも適しているようです。

于 2013-01-03T17:27:18.030 に答える
0

私は同じ問題を抱えていましたが、答えを見つけました:

Android は、メディア テーブルを使用してファイルを処理します。ファイルに変更を加えるときは、このテーブルを更新する必要があります。

これを試して:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

Google ドキュメント: http://developer.android.com/reference/android/content/Intent.html#ACTION_MEDIA_MOUNTED

于 2012-12-17T12:57:36.247 に答える