我正在开发文件管理器,我以这种方式打开文件:
fileName = fileToOpen.getName();
fileName = fileName.substring(fileName.lastIndexOf('.') + 1);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri uri = FileProvider.getUriForFile(getContext(), BuildConfig.APPLICATION_ID + ".provider", fileToOpen);
intent.setDataAndType(uri, MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileName));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);
这几乎可以处理所有扩展,但是当我点击.apk文件时,会抛出一个ActivityNotFoundException。我想启动Android安装屏幕。
答案 0 :(得分:3)
仅在Android 7.0及更高版本上,软件包安装程序才会知道如何使用content
Uri
值。对于早期版本的Android,您别无选择,只能在external storage某处使用APK并使用file
Uri
。