2014-03-24 28 views
0


正如您所看到的,我在這裏是新手(但對編程並不陌生)。我正在開發我的第一款Android相機應用程序,並且無法將我的視頻文件顯示在畫廊中。我知道我需要通知系統我的新文件的內容值,但沒有任何我嘗試的工作。將視頻添加到Android內容管理器

奇怪的是這只是正常的圖像:

ContentValues values = new ContentValues(); 
values.put(MediaStore.Images.Media.DATA, imgFile.getAbsolutePath()); 
getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 


然而,這確實總是在畫廊的應用程序可見視頻:

ContentValues values = new ContentValues(); 
values.put(MediaStore.Video.Media.DATA, vidFile.getAbsolutePath()); 
getContentResolver().insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values); 

我向你保證這是一個有效的視頻文件,有時上面的代碼有效。儘管如此,我無法找到什麼時候工作,何時不工作的模式。
我也嘗試了一些其他的變體getContentResolver()。insert。事實上,如果我告訴它我的視頻文件是一個圖像,它總是更新與我的視頻不可查看的圖像庫。
非常感謝您的幫助!

回答

0

那麼這是一個考驗,但我找到了解決辦法。其實這個新的解決方案可能會比我想要做的更好。取決於我想的各種方法的開銷。

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imageAddedOrDeleted))); 

這使我的視頻看到我的畫廊應用程序每次(感謝上帝,我要訴諸:

正如帕斯卡爾here說,我可以通過廣播適當的意圖更新內容提供商寫我自己的內置查看器) 但我仍然很好奇,爲什麼我的方法適用於圖像而不是視頻,以防有人知道。