2016-10-30 3 views
0

私はAndroidの新しいプロジェクトで作業しています。ここで私のディレクトリにあるファイルのリストを取得できないのはなぜですか?

は私のコードです:

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     if (isExternalStorageReadable()) { 
      File meetings = getDocumentsStorageDir("Meetings"); 

      if (meetings != null && meetings.exists()) { 
       if (meetings.isDirectory()) { 
        String[] list = meetings.list(); 
       } 
      } 
     } 

    } 

    public boolean isExternalStorageReadable() { 
     String state = Environment.getExternalStorageState(); 
     return Environment.MEDIA_MOUNTED.equals(state) || 
       Environment.MEDIA_MOUNTED_READ_ONLY.equals(state); 
    } 

    public File getDocumentsStorageDir(String albumName) { 
     File file = new File(Environment.getExternalStoragePublicDirectory(
       Environment.DIRECTORY_DOCUMENTS), albumName); 
     if (!file.mkdirs()) { 
      Log.e("TAG", "Directory not created"); 
     } 

     return file; 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
    } 
} 

meetingsオブジェクトがnullexistsisDirectoryではありません。しかし、私はこのディレクトリの横にファイルのリストを取得することはできません。

マイlistオブジェクトは、私は、次の権限を設定している

nullの場合:23以上のtargetSdkVersion

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

+1

おそらく、間違った場所に '' 'があるか、実行時のアクセス許可を実装していません(https://commonsware.com/blog/2015/08/31/hey-where-did- my-permission-go.html)。 – CommonsWare

+0

@CommonsWareランタイムのアクセス許可、私はそれらについて忘れてしまった:) – malhobayyeb

答えて

0

、あなたはREAD_EXTERNAL_STORAGEのようなdangerousアクセス権のためhandle runtime permissionsにする必要があります。単に<uses-permission>要素を持つだけでは不十分です。

関連する問題