2012-03-23 8 views
5

Eventuali duplicati:
Android Launch an application from another applicationlancio di attività da un altro Applicazione per android

Sto avendo un problema ed è la seguente:

Ho due applicazioni, e io voglio lanciare una delle attività da un'app all'altra ... darò un esempio:

primo pacchetto app:

"es.wul4.android.app1"

secondo pacchetto app:

"es.wul4.android.app2"

Quello che voglio è avviare l'attività la cui classe è chiamata "Identificar" dall'app1

Questa attività NON è la principale. Ho provato per doind che:

Intent intent = getPackageManager().getLaunchIntentForPackage("es.wul4.app2.Identificar"); 
startActivity(intent); 

Ma quello che mi capita di fare questo è niente, mi dice che esiste l'Indifferente app.

se provo a farlo:

getPackageManager().getLaunchIntentForPackage("es.wul4.app2"); 
startActivity(intent); 

Ed lanciare un'attività, ma la principale ........

Come posso lanciare questa particolare attività all'interno del pacchetto " es.wul4.app2.Identificar "??

Grazie mille.

+0

Vuoi iniziare un'attività particolare? – Praveenkumar

risposta

15

Che cosa è necessario utilizzare sono intent-filters. Supponiamo che l'attività da avviare sia nel pacchetto launch.me. All'interno di questa applicazione manifest tutte le attività (principali o meno) verranno decalimate dal tag <activity>.
Supponendo che l'attività che si desidera avviare si trova all'interno del file di classe Launchme. Poi una parte del vostro manifesto sarà qualcosa di simile:

<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> 

Ora nell'attività da cui si desidera avviare l'uso di attività di cui sopra: (Nota: Questa attività può essere in qualsiasi pacchetto da nessuna parte.Bisogna fare in modo che sia, la chiamata e le chiamate pacchetti sono disponibili sul dispositivo)

Intent i=new Intent(); 
i.setAction("launch.me.action.LAUNCH_IT"); 
startActivityForResult(i,0); 

è possibile utilizzare altri metodi per avviare l'altro intento che startActivityForResult, questo è fino a voi.

+0

Grazie! Non sapevo che fosse necessario utilizzare per avviare l'attività, ora posso avviare l'attività senza problemi e posso anche inviare dati determinati – zapotec

+0

sì, puoi facilmente passare i valori tra loro usando 'putExtra' con gli intenti :) – Urban

1

Forse si aggiunge l'attività all'interno app1 s manifesta ?:

<activity 
     android:label="@string/app_name" 
     android:name=".Identificar" > 
    </activity> 
+1

+1 per la cosa importante è menzionata – Praveenkumar

+1

....... Penso che tu non abbia capito molto bene .... app1 non contiene Activity Identificar. L'Identificativo attività si trova all'interno dell'app2. Quello che voglio è avviare questa attività dall'app1. Grazie comunque. – zapotec

-3

credo, dal momento che entrambe le attività sono nello stesso pacchetto che si hanno solo a che fare:

startActivity(new Intent(getApplicationContext(), Identificar.class)); 
+0

leggi ancora la domanda ... "primo pacchetto app:' es.wul4.android.app1', secondo pacchetto app: 'es.wul4.android.app2'" – Selvin

+0

Umm, si, colpa mia. –

Problemi correlati