0

내 애플리케이션에서 아래 코드를 사용하여 저장소에있는 Movies 폴더의 영화를 나열합니다. 하지만 Nexus 7 태블릿을 Android 4.4로 업그레이드 한 이후로이 코드가 작동하지 않습니다. (코드 끝에있는 축배는 코드가 해당 폴더에서 파일을 찾지 못했음을 의미하며, 폴더에 액세스 할 수 있다고해도 몰라요.). 새로운 업데이트에서 무엇을 변경해야합니까?Android 4.4 KitKat로 업데이트 한 후 Movies 폴더를 찾을 수 없습니다. KitKat

private void populateSpinners() { 

     Boolean foundVideoFiles; 

     // videos spinner 
     File videoFolder = 
       Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) 
         .getAbsoluteFile(); 

     if (videoFolder.listFiles() != null) { 
      foundVideoFiles = true; //found some files 
      ArrayAdapter<File> movieAdapter = new ArrayAdapter<File>(this, 
        android.R.layout.simple_spinner_dropdown_item, videoFolder.listFiles()); 
      _spinner_videos.setAdapter(movieAdapter); 

      //Restore perviously selected video 
      int spinnerValue = _preferences.getInt("spinner_videos", -1); 
      if (spinnerValue != -1) { 
       _spinner_videos.setSelection(spinnerValue); 
      } 
     } else { 
      foundVideoFiles = false; 
     } 

     //Error handling 
     if (foundVideoFiles == false) { 
      Toast.makeText(this, "ERROR: NO MOVIES WERE FOUND IN" + videoFolder, Toast.LENGTH_LONG).show(); 
     } 
} 

태블릿에서 갤러리 앱을 사용하는 경우 동영상이 표시되어 업데이트 중에 영화가 지워지지 않습니다.

답변

5

참고 안드로이드 4.4 (현재 Android 4.4 Important Behavior Changes 당 :

앱 수 없습니다 당신의 앱이 READ_EXTERNAL_STORAGE 권한을 가지고 있지 않는, 안드로이드 4.4에서 실행하면 외부 스토리지의 공유 파일을 읽을 즉, 파일 내. getExternalStoragePublicDirectory()에 의해 반환 된 디렉토리는 더 이상 허가없이 접근 할 수 없습니다

당신이 당신의 매니페스트에 그 권한을 추가 확인하십시오.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
+0

감사합니다. 디버깅 시간이 절약되었습니다. – wodzu