GitHub
https://github.com.cnpmjs.org/hanlyjiang/AndroidDocumentViewer.git
优化
大于 Android 7.0 时使用 FileProvider 获取 uri
AndroidManifest.xml
1 2 3 4 5 6 7 8 9 10 11
| <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" tools:replace="android:authorities" android:grantUriPermissions="true"> <meta-data tools:replace="android:resource" android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" /> </provider>
|
provider_paths.xml
1 2 3 4
| <?xml version="1.0" encoding="utf-8"?> <paths xmlns:android="http://schemas.android.com/apk/res/android"> <external-path path="." name="files_path" /> </paths>
|
1 2 3 4 5 6 7 8 9 10 11
| Uri uri = null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { uri = FileProvider.getUriForFile(mActivity, "com.ingcare.vbmapp.FileProvider", file); } else { uri = Uri.fromFile(file); } Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setDataAndType(uri, "video/*"); mActivity.startActivity(intent);
|