簡體   English   中英

android.provider.MediaStore.Images.Media.insertImage返回null

[英]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。

我嘗試了以下可能的解決方案,但沒有運氣:

  1. 檢查寫入外部存儲的權限->確定
  2. 嘗試通過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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM