将Intent.ACTION_VIEW与DocumentFile类一起使用

时间:2014-12-25 11:37:08

标签: android file android-intent uri documentfile

我使用此代码实现"打开"文件类的函数(java.io.File):

...
MimeTypeMap mime = MimeTypeMap.getSingleton();
String type = mime.getMimeTypeFromExtension(fileExtension);

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), type); // Standard File class            
startActivity(Intent.createChooser(intent, "blabla"));
...

我想对DocumentFile类(android.support.v4.provider.DocumentFile)做同样的事情:

...
MimeTypeMap mime = MimeTypeMap.getSingleton();
String type = mime.getMimeTypeFromExtension(fileExtension);

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(documentFile.getUri(), type); // DocumentFile class          
startActivity(Intent.createChooser(intent, "blabla"));
...

然而,似乎没有应用程序(即使在Android 5上)能够处理URI - documentFile.getUri()

我做错了吗?

1 个答案:

答案 0 :(得分:2)

这对我有用:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(docFile.getUri(), type);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);