2017-11-10 16 views
0

Android Oreoの動作と変更に関するドキュメントを既に読んでいます。Android Oreo(API 26)でディレクトリを作成できません

は、私はAndroidのオレオ(API 26)のためにファイルディレクトリを作成するための別の手順が存在しているはず

コード:

File mediaStorageDir = null; 

    if (Build.VERSION.SDK_INT >= 26) { 
     mediaStorageDir = new File(Environment.getExternalStorageDirectory().toString(), "MyDirectory"); 
     Log.v("HEREEEEE","YES"); 
    } else { 
     mediaStorageDir = new File(Environment.getExternalStorageDirectory().toString() 
       + File.separator + "MyDirectory"); 
    } 

    if (!mediaStorageDir.exists()) { 
     if (!mediaStorageDir.mkdirs()) { 
      Toast.makeText(RecordVideoActivity.this, "Failed to create directory MyDirectory.", 
        Toast.LENGTH_LONG).show(); 
      return null; 
     } 
    } 

しかし、毎回私は取得していますのトーストディレクトリの作成に失敗しました。 MyDirectory。 私はLog.v("HEREEEEE","YES");でも可能ですが、ディレクトリを作成していないことはわかりません。

高度なヘルプがありがとうございます。

+0

あなたが、もしBuild.VERSIONチェックを持っていない理由? File(File、String)コンストラクタは、Android 1に戻っています。 –

+0

まず、私はそれをチェックしていませんでした。しかし、私はエラーを取得していた。だから私はこの方法を試しました –

+0

@ GabeSechanあなたは私が何を変えなければならないのか、なぜこのエラーが起こっているのか教えてもらえますか? –

答えて

0

ポストあなたが許可を求める必要はありロリポップ、あなたがこの記事で答えを探すことができますhere

public boolean isStoragePermissionGranted() { 
    if (Build.VERSION.SDK_INT >= 23) { 
     if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) 
       == PackageManager.PERMISSION_GRANTED) { 
      Log.v(TAG,"Permission is granted"); 
      return true; 
     } else { 

      Log.v(TAG,"Permission is revoked"); 
      ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); 
      return false; 
     } 
    } 
    else { //permission is automatically granted on sdk<23 upon installation 
     Log.v(TAG,"Permission is granted"); 
     return true; 
    } 
} 

許可結果コールバック:

@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    if(grantResults[0]== PackageManager.PERMISSION_GRANTED){ 
     Log.v(TAG,"Permission: "+permissions[0]+ "was "+grantResults[0]); 
     //Create your Directory here 
    } 
} 
関連する問題