2016-12-05 56 views
0

我試圖將我的圖像保存到我的Samsung galaxy s6邊緣的文件夾中。我是一名初學者,已經創建了一個應用程序來練習拍攝一張意圖圖像,並將圖像返回到我的應用程序,然後我選擇一個圖像過濾器並進一步將其保存到我的設備。我不明白爲什麼它不起作用。我得到的錯誤是:將意圖保存到相冊/文件夾

W/System.err的:java.io.FileNotFoundException:/storage/emulated/0/Pictures/Pictures.jpg:打開失敗:EACCES(拒絕)

這裏是代碼:

public void savePhoto(View view) { 
     if(currentBitmap != null) { 
      File storageLoc = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 
      File file = new File(storageLoc, "Pictures.jpg"); 

      try { 
       FileOutputStream fos = new FileOutputStream(file); 
       currentBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
       fos.flush(); 
       fos.close(); 

       Context context = getApplicationContext(); 

       Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); 
       scanIntent.setData(Uri.fromFile(file)); 
       context.sendBroadcast(scanIntent); 

       Toast.makeText(getApplicationContext(), "Your image has been saved!", Toast.LENGTH_SHORT).show(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } else { 
      Toast.makeText(getApplicationContext(), "No image taken!", Toast.LENGTH_SHORT).show(); 
     } 
    } 

我使用API​​15,如果它有什麼事情要做。我的其他代碼在沒有保存圖像的情況下效果很好。如果有人能看到這個問題,我將不勝感激。

+0

錯誤聲明ANDROID_BUILD_TARGET_SDK_VERSION = 22指示傳遞給FileOutputStream –

+2

的Android版本似乎在棉花糖之上。意味着您需要在運行時檢查權限。由於日誌顯示權限被拒絕。 – UMESH0492

+0

你的意思是我必須用這個ContextCompat.checkSelfPermission()來檢查權限嗎? –

回答

1

你的android版本似乎在棉花糖之上。意味着您需要在運行時檢查權限。由於日誌顯示權限被拒絕。

你可以做到這一點有兩種方式

  1. 通過ContextCompat.checkSelfPermission檢查權限()方法
  2. 通過gradle這個
相關問題