从另一个Android应用程序启动Activity

时间:2012-03-23 12:27:09

标签: android

  

可能重复:
  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”中启动此特定活动?

非常感谢你。

3 个答案:

答案 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));
相关问题