2017-07-26 21 views
0

我應該如何通知圖像內容提供者,我剛剛在圖片目錄中保存了一個文件?我預計例如類似圖庫的應用程序能夠看到我的新文件。通知圖像ContentProvider關於外部存儲器上的新文件

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

我在哪裏找到的(Vogella?)似乎不起作用。還是從一開始就是錯誤的做法?

回答

1

圖像通知完成後將圖像插入媒體數據庫。這通常由android系統媒體掃描程序在找到圖像時完成。

您可以編寫自己的代碼將圖像插入到媒體數據庫中,然後致電getContext().getContentResolver().notifyChange(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null);通知某些圖像已更改,而不會特別擅自顯示哪個圖像。

如果您修改了媒體數據庫中已存在的圖像,則必須將文件uri轉換爲內容:uri。 getContext().getContentResolver().notifyChange(imageContentUri, null);

如果您正在實施的是android-4.4或更高版本您可以要求媒體掃描器(重新)分析您的文件。詳情請參閱How to trigger MediaScan on Nexus 7?。在android-4.4之前,這可能無法按預期工作(即在我的android-4.2上它會啓動完整的重新掃描)

+0

嗯,觸發MediaScan將是首選 - 因爲需要的代碼量。不幸的是,它導致文件出現在圖庫中,但其內容不可見。我也會檢查另一種方法 – Antek

相關問題