2017-07-26 1 views
0

Picturesディレクトリにファイルを保存したばかりのイメージコンテンツプロバイダに、どのように通知する必要がありますか?私は期待しています。私の新しいファイルを見ることができるギャラリーのようなアプリ。ImageProviderに外部ストレージの新しいファイルについて通知する

Uri uri = Uri.fromFile(file); 
getContext().getContentResolver().notifyChange(uri, null); 

どこかで見つけた(Vogella?)はうまくいきません。それとも最初から間違ったアプローチですか?

答えて

1

画像はの後にの後にメディアデータベースに挿入されます。これは通常、アンドロイドシステムのメディアスキャナがイメージを見つけたときに実行されます。

イメージをメディアデータベースに挿入するコードを記述し、getContext().getContentResolver().notifyChange(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null);を呼び出して、特定のイメージを具体的に表示せずにイメージが変更されたことを通知することができます。

すでにメディアデータベースにあるイメージを変更した場合は、ファイルuriをcontent:uriに変換する必要があります。 getContext().getContentResolver().notifyChange(imageContentUri, null);

android-4.4以降を実装している場合メディアスキャナにファイルの再分析を依頼することができます。詳細はHow to trigger MediaScan on Nexus 7?を参照してください。これは期待通りに機能しない可能性があります(つまり、アンドロイド4.2で完全な再スキャンが開始されます)

+0

hmm、必要なコード量のためにMediaScanがトリガーされます。残念ながら、ファイルはギャラリーに表示されますが、コンテンツは表示されません。他の方法もチェックします – Antek

関連する問題