与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存在
任何解决方案?
不是一个令人满意的解决方案,但在一个演示应用程序我替代地使用以下代码:
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
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的”类型的数据的活动。 通过查看它。 这会为您提供的应用程序列表(不同的安装的浏览器),供您选择。
Uri uri = Uri.parse(url);
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setDataAndType(uri, "text/html");
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE);
startActivity(browserIntent);