Android:为不同的第三方应用程序启动活动

Android:为不同的第三方应用程序启动活动,第1张

概述我正在开发一个应用程序,我想将Last.fm应用程序集成到其中.基本上,当有人在我的应用程序中查看艺术家时,我想要一个按钮,他们可以点击以打开Last.fm应用程序和艺术家的信息. 这个意图有效,但它会加载一个菜单,询问我想使用哪个应用程序(Browser或Last.fm): Intent i = new Intent();i.setData(Uri.parse("http://last.fm/ 我正在开发一个应用程序,我想将Last.fm应用程序集成到其中.基本上,当有人在我的应用程序中查看艺术家时,我想要一个按钮,他们可以点击以打开Last.fm应用程序和艺术家的信息.

这个意图有效,但它会加载一个菜单,询问我想使用哪个应用程序(browser或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应用程序? Here’s一份Last.fm的AndroIDManifest.xml副本供参考.

谢谢阅读,
托尼

解决方法 是的,这是可能的,但您需要知道正确的组件名称.定期启动last.fm应用程序并检查日志文件以查找启动应用程序时使用的cmp = …信息.然后在您的应用中使用此功能.

我从我的应用程序中启动了市场上的Z-DeviceTest应用程序,没有像这样的问题:

final Intent intentDeviceTest = new Intent("androID.intent.action.MAIN");                intentDeviceTest.setComponent(new  Componentname("zausan.zdevicetest","zausan.zdevicetest.zdevicetest"));startActivity(intentDeviceTest);

在我的情况下,我从logcat获取的信息是:

// dat=content://applications/applications/zausan.zdevicetest/zausan.zdevicetest.zdevicetest

// cmp=zausan.zdevicetest/.zdevicetest

为了知道如何使用正确的组件/类启动应用程序…对last.fm应用程序执行相同 *** 作

编辑:
我已经测试过从我自己的应用程序启动Last.fm,这样可以正常运行而没有任何错误:

final Intent intentDeviceTest = new Intent("androID.intent.action.MAIN");                intentDeviceTest.setComponent(new Componentname("fm.last.androID","fm.last.androID.LastFm"));startActivity(intentDeviceTest);
总结

以上是内存溢出为你收集整理的Android:为不同的第三方应用程序启动活动全部内容,希望文章能够帮你解决Android:为不同的第三方应用程序启动活动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1137592.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存