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

zap*_*tec 5 android

可能重复:
Android从其他应用程序启动应用程序

我有一个问题,它是以下一个:

我有两个应用程序,我想从另一个应用程序启动一个应用程序中的一个......我将举个例子:

第一个应用包:

"es.wul4.android.app1"

第二个应用包:

"es.wul4.android.app2"

我想要的是启动"Identificar"从app1 调用其类的活动

此活动不是主要活动.我试过doind:

Intent intent = getPackageManager().getLaunchIntentForPackage("es.wul4.app2.Identificar");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

但我所做的就是什么,它告诉我应用程序不存在.

如果我尝试这样做:

getPackageManager().getLaunchIntentForPackage("es.wul4.app2");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

它发起了一个活动,但主要的一个........

如何在包"es.wul4.app2.Identificar"中启动此特定活动?

非常感谢.

Urb*_*ban 17

你需要使用的是什么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>  
Run Code Online (Sandbox Code Playgroud)

现在,在您要启动上述活动的活动中使用:(注意:此活动可以在任何地方的任何包中.您必须确保设备上可以使用调用包和被调用包)

Intent i=new Intent();
i.setAction("launch.me.action.LAUNCH_IT");
startActivityForResult(i,0);
Run Code Online (Sandbox Code Playgroud)

你可以使用其他方法启动意图,而不是startActivityForResult你.