我想用html viewer app打开一个本地html文件 我使用下面的代码来做到这一点:
MimeTypeMap mime = MimeTypeMap.getSingleton();
String mimetype = mime.getMimeTypeFromExtension("html");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(HTML File), mimetype);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
但这会弹出选择器包含html编辑应用程序 我只想显示html阅读器应用程序 我该怎么做?
答案 0 :(得分:1)
试试这段代码吧。我们将查询可以打开此mime类型的活动并找到完全正确的htmlviewer应用程序。试试你自己。我没有测试过,所以不确定它是否正常,但这是主要的想法。
MimeTypeMap mime = MimeTypeMap.getSingleton();
String mimetype = mime.getMimeTypeFromExtension("html");
Intent htmlIntent = new Intent(Intent.ACTION_VIEW);
htmlIntent.setDataAndType(Uri.fromFile(htmlFile), mimetype);
PackageManager packageManager = getPackageManager();
List<ResolveInfo> canViewActivity = packageManager.queryIntentActivities(htmlIntent, 0);
for (ResolveInfo resolve : canViewActivity) {
if ((resolve.activityInfo.name).contains("html_viewer_package")) {
final ActivityInfo htmlActivity = resolve.activityInfo;
final ComponentName componentName = new ComponentName(htmlActivity.applicationInfo.packageName, htmlActivity.name);
htmlIntent.addCategory(Intent.CATEGORY_LAUNCHER);
htmlIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
htmlIntent.setComponent(componentName);
startActivity(htmlIntent);
break;
}
}
答案 1 :(得分:1)
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("package.name.of.destination.app");
startActivity(LaunchIntent);
表单中的控件转到该应用程序,因此如果您想要提供一些效果,则必须在目标应用程序中执行此操作