Android 調用系統拍照後無法查看圖片

Q

在開發項目的時候,本打算使用知乎的Matisse進行圖片選取以及拍照,但是在實際操作中碰到了這樣一件事

  • 能獲取到相機APP拍照的圖片
  • 調用系統相機拍照後在選取圖片處沒有該圖

這很困擾,WX,QQ等應用都能拍了照再選取圖片的時候看到拍照的圖,但是這個不行,我以爲是庫的問題,我嘗試了下全部都是原生的方法。

  • 調用相機
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
File tempFile = new File(Environment.getExternalStorageDirectory() + "/pic", "temp.png");
if (!tempFile.getParentFile().exists()) {
    tempFile.getParentFile().mkdir();
}
Uri uri = FileProvider.getUriForFile(MainActivity.this, "com.cmiot.demo.fileprovider", tempFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, 100);//攜帶請求碼
  • 選取圖片
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 101);

然後先調用了圖片,看了一下存在的圖,然後調用相機進行拍照,拍完了返回再選取圖片,結果圖冊裏面依然看不到該圖,只能在文件夾裏對圖片進行移動才能看到,爲啥?求解。。

A

通知媒體庫更新數據庫,讓媒體庫對圖片/視頻一類的媒體文件重新處理就好了。

//Uri的地址scheme需要爲file----->file://path
 sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.fromFile(new File("此處爲file的path地址"))));

一開始沒想明白,後面其實就是系統媒體庫更新,更新了就好了。
還有其他方法(自己以前都用過,感覺好二啊)

MediaStore.Images.Media.insertImage(contentResolver,bitmap, null,null)

Mark一下,免得忘了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章