![](/img/trans.png)
[英]MediaStore.Images.Media.insertImage returns null in some devices
[英]android.provider.MediaStore.Images.Media.insertImage returns null
我有以下代碼:
Uri u_img = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(
getContentResolver(),f.getAbsolutePath(), null, null));
但android.provider.MediaStore.Images.Media.insertImage
在Galaxy S6 6.0.1上返回null。
我嘗試了以下可能的解決方案,但沒有運氣:
- 檢查寫入外部存儲的權限->確定
- 嘗試通過f.exists()檢查目錄是否存在,並返回true
可能是另一個原因嗎?
public void addImageToGallery(final String filePath, final Context context) {
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.MediaColumns.DATA, filePath);
context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
}
正如您在Galaxy S6 6.0.1上所說的那樣,您在Android棉花糖中遇到了這個問題。 這是因為權限。您需要請求寫入權限,因為MediaStore.Images.Media.insertImage
嘗試在SD卡上寫入。 使用以下代碼打開一個對話框:
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
1);
此外,此鏈接還可以幫助您在android 6(棉花糖) https://developer.android.com/training/permissions/requesting.html中獲得許可
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.