0

我使用这段代码来实现文件类(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()

我做错什么了吗?

4

1 回答 1

3

这对我有用:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(docFile.getUri(), type);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
于 2015-03-17T13:28:12.997 回答