我试图通过Intent启动Wikipedia App,但我总是得到一个InvocationTargetException,因为找不到Activity。我可以检测到维基百科已经安装,但我无法启动它。我知道我也可以使用Intent Filter并调用Wikipedia URL,但是用户可以在应用程序和浏览器之间做出决定(两者都与搜索参数不同,这不是很有用)我想为用户做出决定
我尝试使用以下代码:
final Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "searchString");
intent.setType("text/plain");
intent.setPackage("org.wikipedia");
有人可以告诉我,我在那里做错了什么或是不可能启动维基百科应用程序? : - /
答案 0 :(得分:1)
最后,在我查看github(https://github.com/wikimedia/apps-android-wikipedia)上的维基百科代码后,我找到了解决方案。该应用程序仅侦听View Intents,这意味着以下代码可以运行:
final Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(searchUri);
intent.setPackage("org.wikipedia");
这里的问题是,只处理现有文章的URI,并且不能使用搜索操作。在代码中看了一点之后,我发现了一个PageActivity,它也可以监听ACTION_SEARCH Intents。这可行,当在AndroidManifest.xml中时,此Intent Filter也可用。