从自己的角度打开另一个应用程序(意图)我知道如何更新自己的程序,也知道如何使用预定义的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)
3 回答
holdtom
TA贡献1805条经验 获得超10个赞
创建意图 action=MAIN
和 category=LAUNCHER
弄到 PackageManager
从当前上下文中使用 context.getPackageManager
packageManager.queryIntentActivity(<intent>, 0)
在有意图的地方 category=LAUNCHER
,action=MAIN
或 packageManager.resolveActivity(<intent>, 0)
使用Main/Launcher获取第一个活动 弄到 ActivityInfo
你对此很感兴趣 从 ActivityInfo
,去拿 packageName
和 name
最后,用以下方法创建另一个意图 category=LAUNCHER
,action=MAIN
,componentName = new ComponentName(packageName, name)
和 setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
最后, context.startActivity(newIntent)
人到中年有点甜
TA贡献1895条经验 获得超7个赞
/** Open another app. * @param context current Context, like Activity, App, or Service * @param packageName the full package name of the app to open * @return true if likely successful, false if unsuccessful */public static boolean openApp(Context context, String packageName) { PackageManager manager = context.getPackageManager(); try { Intent i = manager.getLaunchIntentForPackage(packageName); if (i == null) { return false; //throw new ActivityNotFoundException(); } i.addCategory(Intent.CATEGORY_LAUNCHER); context.startActivity(i); return true; } catch (ActivityNotFoundException e) { return false; }}
openApp(this, "com.google.android.maps.mytracks");
- 3 回答
- 0 关注
- 572 浏览
添加回答
举报
0/150
提交
取消