从自己的角度打开另一个应用程序(意图)

从自己的角度打开另一个应用程序(意图)

我知道如何更新自己的程序,也知道如何使用预定义的URI(例如SMS或电子邮件)打开程序。

我需要知道如何创建一个打开MyT摩洛哥或任何其他我不知道他们听的是什么意图的应用程序的意图。

我从DDMS获得了这个信息,但我并没有成功地将它转化为我可以使用的意图。这是从手动打开MyT架时开始的。

谢谢你的帮忙

05-06 11:22:24.945: INFO/ActivityManager(76): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks bnds=[243,338][317,417] }

05-06 11:22:25.005: INFO/ActivityManager(76): Start proc com.google.android.maps.mytracks for activity com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks: pid=1176 uid=10063 gids={3003, 1015}

05-06 11:22:26.995: INFO/ActivityManager(76): Displayed activity com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks: 1996 ms (total 1996 ms)


神不在的星期二
浏览 573回答 3
3回答

holdtom

首先,Android中的“应用程序”概念是一个稍微扩展的概念。一个应用程序-从技术上讲是一个进程-可以有多个活动、服务、内容提供者和/或广播侦听器。如果其中至少有一个正在运行,则应用程序已启动并正在运行(进程)。因此,您需要识别的是如何“启动应用程序”。好吧.。以下是你可以尝试的:创建意图action=MAIN和category=LAUNCHER弄到PackageManager从当前上下文中使用context.getPackageManagerpackageManager.queryIntentActivity(<intent>, 0)在有意图的地方category=LAUNCHER,&nbsp;action=MAIN或packageManager.resolveActivity(<intent>, 0)使用Main/Launcher获取第一个活动弄到ActivityInfo你对此很感兴趣从ActivityInfo,去拿packageName和name最后,用以下方法创建另一个意图category=LAUNCHER,&nbsp;action=MAIN,&nbsp;componentName = new ComponentName(packageName, name)和setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)最后,context.startActivity(newIntent)

人到中年有点甜

我有这样的工作,/**&nbsp;Open&nbsp;another&nbsp;app. &nbsp;*&nbsp;@param&nbsp;context&nbsp;current&nbsp;Context,&nbsp;like&nbsp;Activity,&nbsp;App,&nbsp;or&nbsp;Service &nbsp;*&nbsp;@param&nbsp;packageName&nbsp;the&nbsp;full&nbsp;package&nbsp;name&nbsp;of&nbsp;the&nbsp;app&nbsp;to&nbsp;open &nbsp;*&nbsp;@return&nbsp;true&nbsp;if&nbsp;likely&nbsp;successful,&nbsp;false&nbsp;if&nbsp;unsuccessful &nbsp;*/public&nbsp;static&nbsp;boolean&nbsp;openApp(Context&nbsp;context,&nbsp;String&nbsp;packageName)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;PackageManager&nbsp;manager&nbsp;=&nbsp;context.getPackageManager(); &nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;i&nbsp;=&nbsp;manager.getLaunchIntentForPackage(packageName); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i&nbsp;==&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//throw&nbsp;new&nbsp;ActivityNotFoundException(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i.addCategory(Intent.CATEGORY_LAUNCHER); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.startActivity(i); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(ActivityNotFoundException&nbsp;e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;}}示例用法:openApp(this,&nbsp;"com.google.android.maps.mytracks");希望能帮上忙。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android