2012-11-28 25 views
10

Sono riuscito ad aggiungere la mia app nel pulsante "condividi" nella galleria Android, quindi se faccio clic su di essa, la mia app inizierà. Posso scegliere quale attività della mia app iniziare? Ora inizia quello "principale". Ecco il mio codice nella classe principale:Android aggiungi la mia app al pulsante "Condividi" nella galleria

.....   
    Intent intent = getIntent(); 
    Bundle extras = intent.getExtras(); 
    String action = intent.getAction(); 

    // if this is from the share menu 
    if (Intent.ACTION_SEND.equals(action)) { 
     if (extras.containsKey(Intent.EXTRA_STREAM)) { 
      // Get resource path 
     } 
    } 

e il manifesto:

<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*" /> 
</intent-filter> 

In realtà riesco ad aprire una nuova attività subito dopo le "principali" si avvia, ma io preferisco aprire direttamente quello giusto. Grazie

risposta

23

Metti la tua filtro intento in attività che si desidera avviare nel vostro manifesta

<activity android:name=".Theme" 
      android:label="MAIN"> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

<activity android:name=".Theme" 
      android:label="ActiVITY2"> 
    <intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*" /> 
    </intent-filter> 
</activity> 
+0

È semplice? :) Sì, ha funzionato! Grazie amico – phcaze

+0

@jaumard hey la tua risposta mi aiuta, ma voglio l'immagine che voglio condividere in una visualizzazione di immagini in un'unica attività. Come posso fare questo ? –

+0

@AndroidKiller use: Uri imageUri = (Uri) intent.getParcelableExtra (Intent.EXTRA_STREAM); per una singola immagine o utilizzare ArrayList imageUris = intent.getParcelableArrayListExtra (Intent.EXTRA_STREAM); per più immagini –

6

Se tu avessi due attività nel file manifest, dici Main e MediaShare allora sarebbe simile a questa:

<activity android:name="Main" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 
<activity android:name="MediaShare" > 
    <intent-filter> 
     <action android:name="android.intent.action.SEND" /> 
     <data android:mimeType="image/*" /> 
    </intent-filter> 
</activity> 

L'azione android.intent.action.SEND e i dati android:mimeType="image/*" devono essere associati all'attività che si desidera avviare quando si condivide un'immagine.

Vedere page on Receiving Content from Other Apps per ulteriori dettagli.

+0

Per ricevere più immagini:' ' – Atul

Problemi correlati