Autore Topic: Usare la propria applicazione come image picker  (Letto 357 volte)

Offline RogoMantiK

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Xperia Neo
Usare la propria applicazione come image picker
« il: 06 Aprile 2013, 20:08:25 CEST »
0
Sto cercando di fare un applicazione che compare nella lista delle applicazioni che "inviano" immagini tipo come quando si deve scegliere un allegato alle email
Ho cercato un po in giro ma non sono riuscito a trovare un esempio.
Ho letto che nel manifest si deve dichiarare l'intent nel seguente modo
Codice (XML): [Seleziona]
<activity
           android:icon="@drawable/ic_launcher"
           android:name="picker.app.Pick"
           android:label="@string/app_name"
           android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.SEND" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:mimeType="image/*" />
            </intent-filter>
        </activity>
Questo dovrebbe far comparire la mia applicazione nell'elenco. Ho provato con l'emulatore 2.2 ma non esce
Poi ho letto sulla documentazione android che nell'onCreate bisogna mettere ( ho preso solo il codice che riguarda le immagini)
Codice (Java): [Seleziona]
Intent intent = getIntent();
            String action = intent.getAction();
            Bundle extras = intent.getExtras();

Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
                    if (imageUri != null) {
                        // Update UI to reflect image being shared
                    }
però quel getParcelableExtra e Update UI mi sembrano che si riferiscono all'immagine proveniente dall'intent che poi viene usata nella mia applicazione
in linea di principio l'applicazione dovrebbe rispondere ad una chiamata del tipo startActivityForResult e quindi rispondere con l'uri dell immagine e con un request code ma non sono riuscito a trovare niente. Non ho capito neppure se l'immagine la si deve passare attraverso l'intent oppure tramite il terurn di una funzione
Qualcuno può chiarirmi le idee? :)


Post unito: 07 Aprile 2013, 11:15:49 CEST
Ho risolto nel seguente modo
Manifest:
Codice (XML): [Seleziona]
<activity
           android:name="share.app.Pick"
           android:icon="@drawable/ic_launcher"
           android:label="Shareeeee" >
            <intent-filter>
                <action android:name="android.intent.action.SEND" />

                <category android:name="android.intent.category.DEFAULT" />

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

                <category android:name="android.intent.category.DEFAULT" />

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

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.OPENABLE" />

                <data android:mimeType="image/*" />
            </intent-filter>
        </activity>

E nell'activity:
Codice (Java): [Seleziona]
//SALVO IL FILE E POI
Uri uri = Uri.fromFile(fileName);
           
            Intent result = new Intent("share.app.RESULT_ACTION",  uri);

            setResult(Activity.RESULT_OK, result);
            finish();
funziona
« Ultima modifica: 07 Aprile 2013, 11:15:49 CEST da RogoMantiK, Reason: Merged DoublePost »