Android:尝试在浏览器中打开本地 HTML 文件时,在某些设备上未找到活动异常

2023-11-25

当我尝试在 Android 浏览器中打开本地 HTML 文件时,遇到一个奇怪的错误。发生的错误是找不到活动异常:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.browser/com.android.browser.BrowserActivity}; have you declared this activity in your AndroidManifest.xml?

对我来说真正奇怪的是这个错误并没有发生在所有设备上。它仅出现在以下设备上:

  • 三星 Galaxy Nexus I (4.1.1)
  • 三星 Galaxy Nexus II (4.1.1)
  • 索尼平板电脑 S (4.0.3)

我已在以下设备上成功测试了我的代码:

  • 三星 Galaxy S I (4.1.1)
  • 三星 Galaxy S III
  • HTC One X
  • HTC Desire S
  • 三星 Galaxy S Plus (2.3.3)
  • 三星 Galaxy Tab 10.1N
  • Android 版本从 2.3.3 到 4.1.0 的 AVD

最后,这是我用来使用 Android 浏览器打开 HTML 文件的代码。我已经测试了这段代码的几种排列,省略了一些行,但它们确实具有相同的效果。一旦我设置组件或类,我就会得到上述异常。

Uri uri = Uri.parse(filePath);
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity"));
browserIntent.setDataAndType(uri, "text/html");
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE);
context.startActivity(browserIntent);

我也尝试过

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

代替

browserIntent.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity"));

但同样的效果...

有人知道为什么会发生这种情况吗?我错过了什么吗?我已经搜索了几天,但找不到任何可以解决我的问题的东西......

预先非常感谢, 干杯


Possible因为可能没有任何活动com.android.browser.BrowserActivity在这些设备中,其取决于设备制造商他们如何实现原生浏览器应用程序(活动名称和包名称)。

所以可能的解决方案是,

Using PackageManger and Intent您可以检查特定的意图类别,例如,Intent.CATEGORY_BROWSABLE适用于任何应用程序(如果可用),然后将该应用程序设置为 ComponentName。

或者,您不指定组件名称,例如,

browserIntent.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity"));

让用户必须选择哪个 Activity 将打开此页面,

所以代码就是,

Uri uri = Uri.parse(filePath);
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setDataAndType(uri, "text/html");
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE);
context.startActivity(browserIntent);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:尝试在浏览器中打开本地 HTML 文件时,在某些设备上未找到活动异常 的相关文章

随机推荐