2011-06-10 2 views
1

나는 다음을 시도했지만 항상 이 파일을 읽을 권리가 있음을 알고 있지만 항상 PackageManager.PERMISSION_DENIED를 반환합니다. 어떤 아이디어?인 텐트와 함께 전송 된 URI의 사용 권한을 어떻게 확인합니까?

Uri uri = (Uri) intent.getExtras().get(Intent.EXTRA_STREAM); 

// check uri permissions but does not work 
int perm = checkUriPermission(uri , "r", null, 
     Binder.getCallingPid(), Binder.getCallingUid(), 
     Intent.FLAG_GRANT_READ_URI_PERMISSION); 
if (perm == PackageManager.PERMISSION_DENIED) { 
    Toast.makeText(getApplicationContext(), 
    "No permissions to read the file", Toast.LENGTH_LONG).show(); 
    finish(); 
} 

답변

3

r은 (는) 허락을받지 않았습니다. 두 번째 매개 변수에 null을 전달하거나 두 번째 및 세 번째 위치에있는 두 개의 String 매개 변수를 건너 뛰는 checkUriPermission() 버전을 사용하십시오.

+0

아, 이제 알겠습니다. 항상 확인하고 싶은 권한을 알고 있어야합니다. 그러나 그것은 내가 원하는 것이 아닙니다. 파일을 읽을 수 있는지 알고 싶습니다. 때로는 파일을 보낼 수있는 다른 응용 프로그램이 있지만 내 응용 프로그램은 파일을 읽을 수있는 권한이 없습니다. 그래서 SecurityException을 잡아야합니다 ... – mohlendo

관련 문제