我真的不明白这是多么困难,但我看到它被问到过去4年,并且OP总是报告同样的问题/错误。我尝试了各种解决方案但没有在所有设备上工作。我目前的代码是:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(htmlFile);
intent.setData(uri);
intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
startActivity(intent);
这适用于我的摩托罗拉Photon,我的三星Galaxy 10.1 Tab和我的HTC Droid DNA。但不适用于Note 3或GS4。这两个设备都崩溃了,很可能是基于其他人报告的ActivityNotFoundException(我手头没有设备,报告此设备的用户没有调试器)。
我还在Play商店中看到许多仅用于阅读本地HTML文件的应用程序。所以看起来有必要创建关联并允许浏览器查看本地HTML文件(在我的特定情况下的Downloads目录中)。有没有人能够在所有平台上运行?
答案 0 :(得分:1)
只需使用:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.parse(url), "text/html");
startActivity(intent);
由于您不需要定义浏览器包名称,因此它更通用
这将打开一个提示,用户可以选择要打开网址的浏览器
然而,它不会使您免于ActivityNotFoundException
,因为您永远不知道用户是否拥有处理设备上安装的html文件的软件。