Autore Topic: fotocamera, gallery e http  (Letto 1109 volte)

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
fotocamera, gallery e http
« il: 02 Settembre 2010, 15:00:37 CEST »
0
Allora , devo consegnare la mia app tra un paio di settimane e sto letteralmente impazzendo.

una parte del progetto è dare la possibilità ad un utente di scattare una foto ed inviarla tramite protocollo http ad un server.
la fotocamera grazie al tutorial del forum riesco ad usarla, ma nn so come impostare la funzione
Codice (Java): [Seleziona]
       public void onClick(View v) {
                                mCamera.takePicture(null, null, jpegCallback);
                        }
in modo che sostituisca il pulsante di scatto della foto, con uno che mi dica invia e mi servirebbe sapere come posso inviare un jpg tramite protocollo http (lo devo salvare come file temporaneo?).

un altra cosa che il programma dovrebbe fare è aprire la gallery selezionare una foto ed inviarla allo stesso modo.

come detto sto impazzendo tra inglese e gente che ha gli stessi problemi su internet quindi vi sarei grato se qualcuno di voi mi desse qualche informazione a riguardo e magari qualche link o snapshoot se avete avuto e avete risolto gli stessi problemi

grazie infinite

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:fotocamera, gallery e http
« Risposta #1 il: 02 Settembre 2010, 15:10:27 CEST »
+1
Per l'invio dell'immagine tramite http puoi utilizzare l'encoding in base64: Effettuare Download di un file (o immagine jpeg) da un server web Java SOAP - Android Developers Italia

Per far selezionare l'immagine all'utente dalla gallery puoi partire da questo codice, da inserire nella tua activity:
Codice (Java): [Seleziona]
protected static final int      IMAGE_FROM_GALLEY                               = 101;
       
        protected void startGalleryActivity () {
                Intent i = new Intent( Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI );
                startActivityForResult( i, IMAGE_FROM_GALLEY );
        }

        @Override
        protected void onActivityResult ( int requestCode, int resultCode, Intent data ) {

                if ( requestCode == IMAGE_FROM_GALLEY ) {

                        if ( resultCode == RESULT_OK ) {
                                Uri selectedImage = data.getData();
                                Bitmap b = getBitmapFromUri(selectedImage);
                               
                                //Fai l'encoding in base64 della bitmap e invia, possibilmente in un thread separato
                        }
                        else {
                                //L'utente ha chiuso la gallery senza selezionare nulla
                        }
                }

                super.onActivityResult( requestCode, resultCode, data );
        }
       
        public Bitmap getBitmapFromUri ( Uri uri ) {
                try {
                        return Media.getBitmap( this.getContentResolver(), uri );
                }
                catch ( Exception e ) {
                        return null;
                }
        }

Per l'altro qusito non saprei, io ho nel mio lavoro per cattuare un'immagine ho utilizzato il programma di default del telefono (vedi [medio] Come utilizzare la Camera di Android per scattare una foto - Android Developers Italia). La trovo più "professional" come soluzione perchè l'utente può utilizzare tutte le funzionalità messe a disponizione dal programma (zoom, effetti vari, ...)
« Ultima modifica: 02 Settembre 2010, 15:17:31 CEST da Ricky` »

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:fotocamera, gallery e http
« Risposta #2 il: 02 Settembre 2010, 15:21:01 CEST »
0
Quanto ti voglio bene ....:) ahahah grazie 1000 la gallery sono riuscito ad usarla ora provo con l'invio

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:fotocamera, gallery e http
« Risposta #3 il: 02 Settembre 2010, 15:24:40 CEST »
0
Quanto ti voglio bene ....:) ahahah grazie 1000 la gallery sono riuscito ad usarla ora provo con l'invio

Altro che affetto... ora ti do il mio codice Iban :D

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:fotocamera, gallery e http
« Risposta #4 il: 02 Settembre 2010, 15:33:23 CEST »
0
Altro che affetto... ora ti do il mio codice Iban :D

d'oh  o_O :money_mouth:

 comunque sai dove posso trovare una lista dei codici delle applicazioni come questo ?
Codice (Java): [Seleziona]
protected static final int      IMAGE_FROM_GALLEY                               = 101;sarebbe molto utile, e grazie ancora
TROVATO  quello della camera
Codice (Java): [Seleziona]
private static final int CAMERA_PIC_REQUEST = 1337;  
« Ultima modifica: 02 Settembre 2010, 15:38:58 CEST da DX89B »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:fotocamera, gallery e http
« Risposta #5 il: 02 Settembre 2010, 15:46:00 CEST »
0
Beh i codici da assegnare quando fai una startActivityForResult li puoi decidere tu arbitrariamente. Io ho messo 101 perchè in quell'activity ne ho anche altri.

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:fotocamera, gallery e http
« Risposta #6 il: 02 Settembre 2010, 15:48:01 CEST »
0
infatti, me ne sono accorto ora quello che conta è l'intent O.o :)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:fotocamera, gallery e http
« Risposta #7 il: 02 Settembre 2010, 15:57:14 CEST »
0
Ok, quindi se il problema è risolto ricordati di contrassegnare il topic :)

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:fotocamera, gallery e http
« Risposta #8 il: 02 Settembre 2010, 16:00:14 CEST »
0
sisi è risolto , mancherebbe la storia dell' upload ma farò in seguito :)

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:fotocamera, gallery e http
« Risposta #9 il: 07 Settembre 2010, 10:54:08 CEST »
0
mmmh ora che ho creato il post client mi sono accorto che l'activity gallery non mi restituisce alcun result

a dire il vero non entra proprio in onActivityResult boh sai dirmi xkè? non dovrebbe cambiare se ho un htc desire con una gallery diversa da quella di google giusto?


Codice (Java): [Seleziona]
 protected void startGalleryActivity () {
                    Intent i = new Intent( Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI );
                    startActivityForResult( i, IMAGE_FROM_GALLEY );
                    Log.i("postclient","startgallery");
            }


Codice (Java): [Seleziona]
 protected void onActivityResult ( int requestCode, int resultCode, Intent data ) {
                Log.i("postclient","result");
                    if ( requestCode == IMAGE_FROM_GALLEY ) {
                        Log.i("postclient","Gallery");

                            if ( resultCode == RESULT_OK ) {
                                   Log.i("postclient", "data recived");
                                   selectedImage = data.getData();
                                 
                                   
                                    Log.i("postclient", selectedImage.toString());
                                    Post invia = new Post();
                                    invia.execute();
                            }
                            else {
                                  Log.i("postclient","dati non ricevuti");
                                   
                            }
                    }
                    if ( requestCode == CAMERA_PIC_REQUEST ) {

                    if ( resultCode == RESULT_OK ) {
                        Bitmap b = (Bitmap) data.getExtras().get("data");  
                           
                           
                    }
                    else {
                           
                    }
            }

                    super.onActivityResult( requestCode, resultCode, data );
            }
se può essere utile questo è il log incriminato secondo me :)

09-07 10:55:58.945: INFO/MainActivity(32103): mWorker finishes jobs at onDestroy().

ho provato anche così ma niente
Codice (Java): [Seleziona]
 protected void startGalleryActivity () {
               
                          Intent intent = new Intent();
              intent.setType("image/*");
              intent.setAction(Intent.ACTION_GET_CONTENT);
              startActivityForResult(Intent.createChooser(intent,
                      "Select Picture"), IMAGE_FROM_GALLEY);
                   
            }
« Ultima modifica: 07 Settembre 2010, 11:19:07 CEST da DX89B »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:fotocamera, gallery e http
« Risposta #10 il: 07 Settembre 2010, 11:18:19 CEST »
0
Il codice che ti ho postato a me funziona perfettamente con htc desire...

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:fotocamera, gallery e http
« Risposta #11 il: 07 Settembre 2010, 11:20:13 CEST »
0
Ricky  non è che bisogna impostare qualcosa nel manifest? xkè non capisco

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:fotocamera, gallery e http
« Risposta #12 il: 07 Settembre 2010, 11:32:43 CEST »
0
Il codice che hai postato mi sembra ok, il problema magari è altrove.

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:fotocamera, gallery e http
« Risposta #13 il: 07 Settembre 2010, 11:40:56 CEST »
0
stavo pensando che il result viene inviato all'activity che l'ha invocato o all'applicazione?
può influire che l'activity che fa partire la gallery è contenuta in una ActivityGroup che a sua volta è contenuto in una TabActivity (activitygroup)  ?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:fotocamera, gallery e http
« Risposta #14 il: 07 Settembre 2010, 11:43:51 CEST »
0
Ad essere sincero non lo so. L'activity result comunque viene ritornato all'activity che chiama startActivityForResult.