开放本地的HTML文件与功能的Android浏览器在Android中3.X(opening-loca

2019-09-16 11:47发布

与Android 2.xi可以使用该解决方案

browserIntent.setClassName("com.android.browser", "com.android.browser.BrowserActivity") 

解决了在后:

打开本地的HTML文件与Android浏览器

但随着Android 3.2的,我有这个错误:

Unable to find explicit activity class 
(com.android.browser/com.android.browser.BrowserActivity); 
have you declared this activity in your AndroidManifest.xml?

我认为类com.android.browser.BrowserActivity不会在安卓3.X存在

任何解决方案?

Answer 1:

不是一个令人满意的解决方案,但在一个演示应用程序我替代地使用以下代码:

String url = "content://com.android.htmlfileprovider/sdcard/mydir/myfile.html";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), "text/html");
startActivity(intent);

通常情况下,两部作品中的至少一个。

https://github.com/nicolas-raoul/OxygenGuide-Android/blob/master/src/org/github/OxygenGuide/MainActivity.java#L69



Answer 2:

intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity")

打开任何应用程序有包名“com.android.browser”。 使用此问题是,超过Android和各个厂商的各种版本,默认浏览器变化。 例如Nexus装置倾向于来与铬的应用程序,其具有不同的包名称预先安装。

Unable to find explicit activity class 
(com.android.browser/com.android.browser.BrowserActivity); 
have you declared this activity in your AndroidManifest.xml?

你复制的错误解释说,有一个与包名browserIntent.setClassName任何应用程序()来显式打开一个特定的应用程序,这意味着它不应该提供一个提示,询问你想使用的浏览器。

如果这是你想避免(弹出)的东西,那么你可以检查浏览器的设备上什么,并可能建议把链接点击之前下载。

你也可以从另一个建议使用的代码。

String url = "content://com.android.htmlfileprovider/sdcard/mydir/myfile.html";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), "text/html");
startActivity(intent);

这指明要打开,可以处理“text / html的”类型的数据的活动。 通过查看它。 这会为您提供的应用程序列表(不同的安装的浏览器),供您选择。



Answer 3:

Uri uri = Uri.parse(url);
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setDataAndType(uri, "text/html");
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE);
startActivity(browserIntent);


文章来源: opening-local-html-file-with-android-browser in android 3.x