我使用此代码实现"打开"文件类的函数(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()。
我做错了吗?
答案 0 :(得分:2)
这对我有用:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(docFile.getUri(), type);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);