我試圖在添加圖庫時獲取圖庫中所有媒體的Uri。例如。用途拍攝照片。我自動收到一個包含Uri的意圖。我針對Apis 21-26,Android刪除了在Api 25中執行此操作的功能,而無需使用JobObservers。我不知道如何用JobObserver來做到這一點。有人可以幫忙嗎?如何在畫廊中獲得新媒體的Uri?
0
A
回答
0
首先,FileOberver是一種內存殺手方法。考慮大量的文件。而ContentObserver似乎是一種更好的方法。
getContentResolver().registerContentObserver(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, true,
new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
Log.d("your_tag","Internal Media has been changed");
super.onChange(selfChange);
Long timestamp = readLastDateFromMediaStore(context, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
// comapare with your stored last value and do what you need to do
}
}
);
getContentResolver().registerContentObserver(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, true,
new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
Log.d("your_tag","External Media has been changed");
super.onChange(selfChange);
Long timestamp = readLastDateFromMediaStore(context, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// comapare with your stored last value and do what you need to do
}
}
);
private Long readLastDateFromMediaStore(Context context, Uri uri) {
Cursor cursor = context.getContentResolver().query(uri, null, null, null, "date_added DESC");
PhotoHolder media = null;
Long dateAdded =-1;
if (cursor.moveToNext()) {
Long dateAdded = cursor.getLong(cursor.getColumnIndexOrThrow(MediaColumns.DATE_ADDED));
}
cursor.close();
return dateAdded;
}
0
要使用的jobscheduler使用您使用這些內容的URI
JobInfo.Builder builder = new JobInfo.Builder(ASJOBSERVICE_JOB_ID, new ComponentName("co.intellidev.storj", JobSchedulerService.class.getName()));
builder.addTriggerContentUri(new JobInfo.TriggerContentUri(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, flag));
builder.addTriggerContentUri(new JobInfo.TriggerContentUri(MediaStore.Images.Media.INTERNAL_CONTENT_URI, flag));
builder.addTriggerContentUri(new JobInfo.TriggerContentUri(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, flag));
builder.addTriggerContentUri(new JobInfo.TriggerContentUri(MediaStore.Video.Media.INTERNAL_CONTENT_URI, flag));
相關問題
- 1. 如何獲得媒體的URI
- 2. 如何說Wordpress在畫廊中使用標題媒體庫?
- 3. 所有類型媒體的Wordpress畫廊?
- 4. 安卓:從畫廊URI獲取視頻
- 5. 只得到最大的3個媒體畫廊圖像getMediaGalleryImages在Magento
- 6. 如何使科爾多瓦媒體捕獲不保存到畫廊
- 7. 如何得到這在iphone畫廊
- 8. 如何在畫廊外獲得產品圖像標籤?
- 9. 如何在wordpress中獲得現有媒體的網址
- 10. 如何在Android中獲得媒體播放器的幅度?
- 11. 如何獲得在PyQt4中播放媒體的總時間?
- 12. Symfony從兩個實體獲取畫廊
- 13. 如何在多畫廊的頁面上從一個畫廊獲取字幕
- 14. 的fancybox畫廊羣體
- 15. Android開畫廊圖像URI路徑
- 16. 在android kitkat刷新畫廊
- 17. 從畫廊添加媒體到wordpress頁面
- 18. 如何在媒體中獲得總盤區?
- 19. Sitecore如何獲得媒體項目的媒體領域內的價值
- 20. 獲取從畫廊
- 21. 獲取從畫廊
- 22. 如何獲得目錄和文件從畫廊
- 23. 如何獲得AppEngine中的基礎URI?
- 24. 從畫廊得到圖像中的PhoneGap
- 25. 如何獲得遠程URI
- 26. 砌體畫廊不工作
- 27. 如何返回已經存在的媒體文件的Uri?
- 28. 如何在我的畫廊中獲取文件夾視圖?
- 29. 獲得媒體的URL從媒體服務器用保鮮
- 30. 如何在應用程序開發中查看Android畫廊的水平畫廊?
請問這個網站註冊並運行的每個用戶拍攝新照片或添加新的視頻時間? –
或者我想我應該澄清一下,如何在新媒體添加時在後臺運行 –