2016-11-30 49 views
1

我從我的SD卡讀取圖像路徑URL時出現問題。相機目錄空

它總是返回該錯誤:嘗試獲取空數組的長度:嘗試讓我的手機

瀏覽圖片上的空數組的長度我得到這個目錄作爲相機膠捲目錄:

/storage/emulated/0/DCIM/Camera/imageName 

我把我的清單文件權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

這是我的代碼:

public void processImages() { 
    listOfImages = new ArrayList<>(); 

    Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 

    if (isSDPresent) { 


//returns same path - /storage/emulated/0/DCIM/Camera/ 
     String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath()+"/Camera/"; 
     File f = new File(path); 

     listOfImages = scanPhotos(f); 

    } else { 
     Toast.makeText(this, "sd not present", Toast.LENGTH_SHORT).show(); 
    } 
} 

public List<File> scanPhotos(File directory) { 
    List<File> listOfPictures = new ArrayList<>(); 

//this returns null 
     File[] files = directory.listFiles(); 
     for (File file : files 
       ) { 
      if (file.isDirectory() && !file.isHidden()) { 
       listOfPictures.addAll(scanPhotos(file)); 
      } else { 
       if (file.getName().endsWith(".jpg") || file.getName().endsWith(".jpeg") || file.getName().endsWith(".png")) { 
        listOfPictures.add(file); 
       } 
      } 
     } 

    return listOfPictures; 
} 

f.canRead() - returns false 
+3

您是否檢查了運行時權限? – Rahul

+0

這解決了我的問題。我完全忘記了那些棉花糖的許可。非常感謝你 – hyrulelink16

回答

1

發佈的答案我的意見。從棉花糖起,您需要提供運行時間permissions

有回調

public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {} 

,告訴權限由用戶或不批。

添加請求的權限使用tutorial