Actividad de lanzamiento de otra aplicación Android
Posible duplicado:
Android Inicie una aplicación desde otra aplicación
Estoy teniendo un problema y es el siguiente:
Tengo dos aplicaciones, y quiero lanzar una de las actividades de una aplicación por la otra …… Voy a dar un ejemplo:
Primer paquete de aplicación:
"Es.wul4.android.app1"
Segundo paquete de aplicaciones:
"Es.wul4.android.app2"
Lo que quiero es iniciar la actividad cuya clase se denomina "Identificar"
desde la app1
Esta actividad NO es la principal. He intentado por doind que:
Intent intent = getPackageManager().getLaunchIntentForPackage("es.wul4.app2.Identificar"); startActivity(intent);
Pero lo que hago que no es nada, me dice que la aplicación no existe.
Si trato de hacer eso:
getPackageManager().getLaunchIntentForPackage("es.wul4.app2"); startActivity(intent);
Y lanzar una actividad, pero la principal ……..
¿Cómo puedo iniciar esta actividad en particular dentro del paquete "es.wul4.app2.Identificar" ??
Muchas gracias.
Lo que debe utilizar son intent-filters
. Supongamos que la actividad que se va a lanzar está en el paquete launch.me
. Dentro de este manifiesto de aplicaciones, todas las actividades (principales o de otro tipo) serán decalificadas por la etiqueta <activity>
.
Suponiendo que la actividad que desea iniciar se encuentra dentro del archivo de clase Launchme
. Entonces una porción de su manifiesto será algo como:
<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>
Ahora, en la actividad desde la que desea iniciar la actividad anterior, utilice: (Nota: Esta actividad puede estar en cualquier paquete en cualquier lugar, debe asegurarse de que tanto los paquetes llamados como los llamados están disponibles en el dispositivo)
Intent i=new Intent(); i.setAction("launch.me.action.LAUNCH_IT"); startActivityForResult(i,0);
Puede utilizar otros métodos para iniciar la intención que no sea startActivityForResult
, eso startActivityForResult
usted.
¿ app1
actividad dentro del manifiesto de app1
?:
<activity android:label="@string/app_name" android:name=".Identificar" > </activity>
Pienso, puesto que ambas actividades están en el mismo paquete que usted tiene que hacer solamente:
startActivity(new Intent(getApplicationContext(), Identificar.class));