可能重复:
Android Launch an application from another application
我遇到了问题,而且是以下问题:
我有两个应用程序,我想从另一个应用程序启动一个应用程序中的一个......我要举个例子:
第一个应用包:
“es.wul4.android.app1”
第二个应用包:
“es.wul4.android.app2”
我想要的是从app1
启动其类名为"Identificar"
的活动
此活动不是主要活动。我试过doind:
Intent intent = getPackageManager().getLaunchIntentForPackage("es.wul4.app2.Identificar");
startActivity(intent);
但我所做的并不是什么,它告诉我应用程序不存在。
如果我尝试这样做:
getPackageManager().getLaunchIntentForPackage("es.wul4.app2");
startActivity(intent);
它发起了一项活动,但主要活动........
如何在包“es.wul4.app2.Identificar”中启动此特定活动?
非常感谢你。
答案 0 :(得分:15)
您需要使用的是intent-filters
。假设要启动的活动位于包launch.me
中。在此应用程序清单中,所有活动(主要或其他)将由<activity>
标签进行十字转换
假设您要启动的活动位于类文件Launchme
内。然后你的清单的一部分将是:
<activity android:name="launch.me.Launchme"
android:label="@string/app_name">
<intent-filter>
<action android:name="launch.me.action.LAUNCH_IT"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
现在,在您要启动上述活动的活动中使用:(注意:此活动可以在任何地方的任何包中。您必须确保设备上可以使用调用包和被叫包)
Intent i=new Intent();
i.setAction("launch.me.action.LAUNCH_IT");
startActivityForResult(i,0);
您可以使用其他方法启动除startActivityForResult
之外的其他方法,这取决于您。
答案 1 :(得分:1)
您是否在app1
的清单中添加了活动?:
<activity
android:label="@string/app_name"
android:name=".Identificar" >
</activity>
答案 2 :(得分:-3)
我认为,因为这两个活动都在你必须做的同一个包中:
startActivity(new Intent(getApplicationContext(), Identificar.class));