2017-11-10 2 views
0

Android Oreo의 동작 및 변경에 대한 설명서를 이미 읽었습니다.Android Oreo (API 26)에서 디렉토리를 만들지 못했습니다.

나는 안드로이드 오레오 (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) 생성자는 안드로이드 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 
    } 
} 
관련 문제