Android 如何检查已发送的URI的权限?

Android 如何检查已发送的URI的权限?,android,permissions,Android,Permissions,我尝试了以下操作,但始终返回PackageManager.PERMISSION\u DENIED,尽管我 我知道我有权阅读该文件。有什么想法吗 Uri uri = (Uri) intent.getExtras().get(Intent.EXTRA_STREAM); // check uri permissions but does not work int perm = checkUriPermission(uri , "r", null, Binder.getCallingP

我尝试了以下操作,但始终返回PackageManager.PERMISSION\u DENIED,尽管我 我知道我有权阅读该文件。有什么想法吗

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();
}

r
不是权限。尝试为第二个参数传递
null
,或者使用
checkUriPermission()
版本跳过第二个和第三个位置的两个字符串参数。

Ah,现在我知道了。我必须知道我要检查的许可。但这不是我想要的。我想知道我是否能读这个文件。有时,其他应用程序允许发送文件,但我的应用程序没有读取文件的权限。所以我必须抓住安全例外。。。