我正在开发一个应用程序,希望将Last.fm应用程序集成到其中。基本上,当有人在我的应用程序中查看艺术家时,我希望有一个按钮,他们可以点击以打开带有艺术家信息的Last.fm应用程序。
这个意图可以工作,但它会加载一个菜单,询问我想使用哪个应用程序(浏览器或Last.fm):
这个意图可以工作,但它会加载一个菜单,询问我想使用哪个应用程序(浏览器或Last.fm):
Intent i = new Intent();
i.setData(Uri.parse("http://last.fm/music/" + headliner));
i.setAction("android.intent.action.VIEW");
startActivity(i);
然而,我只想启动Last.fm应用程序并跳过询问要使用哪个应用程序的对话框,我认为可以使用setPackage()方法来实现这一点:
i.setPackage("fm.last.android");
但这会导致应用程序崩溃:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://last.fm/music/Rihanna pkg=fm.last.android }
能否仅启动Last.fm应用程序?这里提供了Last.fm的AndroidManifest.xml参考副本。
感谢阅读, 托尼
startActivity
包装在 try 块中,并捕获android.content.ActivityNotFoundException
,如果包不存在,则会抛出该异常。这样,您的应用程序将不会被终止。 - Brent Faust