Autore Topic: Gestione Fotocamera, foto e invio su server  (Letto 2900 volte)

Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Gestione Fotocamera, foto e invio su server
« il: 14 Luglio 2011, 14:09:11 CEST »
0
Ciao Ragazzi,
tempo fa avevo chiesto aiuto riguardo l'invio di una foto scattata da fotocamera e poi inviata su server.
Ho risolto scattando la foto (salvata sulla memoria del telefono) e poi successivamente richiamando la gallery (prendendo l'immagine cosi:

Codice (Java): [Seleziona]
startActivityForResult(new Intent(Intent.ACTION_PICK,
                                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI),
                                SELECT_IMAGE_CODE)

Mi servirebbe di fare una cosa simile ma diversa in realtà.

In pratica spiego secco secco,

ho un modulo con dei dati compilati. Da questo modulo devo chiedere se si vuole fare la foto o meno. Se faccio la foto devo usare la fotocamera del telefono e salvare la foto su una cartella con il nominativo associato al modulo (sdcard/nominativo/foto.jpg per esempio).
Quando torno al modulo devo vedere la preview della foto e poi quando clicco su invia foto la mando al server.
Per quanto riguarda l'invio sul server non ho problemi ma per salvare la foto su una cartella creata da me e poi utilizzarla nella mia activity sto avendo parecchi problemi...

Qualcuno che ci è passato e ha risolto?

in pratica alla fine è riassumibile cosi:

Mia Activity - Scatta foto - salvare foto in directory con dato mia activity - tornare activity e visualizzare preview - invio foto

CIAO!

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Gestione Fotocamera, foto e invio su server
« Risposta #1 il: 14 Luglio 2011, 17:48:04 CEST »
0
dove hai problemi di preciso?

se hai errori, che tipo di errori ti da? posti il logcat?

posti un po' di codice?
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Re:Gestione Fotocamera, foto e invio su server
« Risposta #2 il: 14 Luglio 2011, 18:50:16 CEST »
0
Ciao,
allora...

Utilizzando la fotocamera del terminale, richiamandola cosi:

Codice (Java): [Seleziona]
scattafoto();

public void scattafoto() {
                Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                startActivity(i);
        }


Quando scatto la foto devo dirgli di salvarla all'interno di una cartella che chiamo "modulo_001" per esempio con il nome di modulo_001.jpg

Il problema è che l'altra volta mi bastava salvarla nella classica DCIM e poi per inviarla scorrere la galleria e prendermela.

Adesso la cosa deve essere tutta automatica. Scatto, salvo in cartella e invio su server.

Di codice c'è solo la chiamata alla Camera per il momento, sto ancora spulciando mezza rete per capire come prendermi l'immagina appena scattata e lavorarci sopra.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Gestione Fotocamera, foto e invio su server
« Risposta #3 il: 14 Luglio 2011, 19:27:14 CEST »
+1
Invece di fare una semplice startActivity fai una startActivityForResult in modo che quando l'utente scatta la foto e conferma la Bitmap corrispondente ti venga ritornata.

Ricapitolando:

Codice (Java): [Seleziona]
public void scattafoto() {
                Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(i, IMAGE_CAPTURE);
        }

Codice (Java): [Seleziona]
        @Override
        protected void onActivityResult ( int requestCode, int resultCode, Intent data ) {

                if ( requestCode == IMAGE_CAPTURE ) {

                        if ( resultCode == RESULT_CANCELED ) {
                              //Gestisci che l'utente non ha scattato la foto
                        }

                        Uri selectedImage = data.getData();

                        Bitmap b = ( Bitmap ) data.getExtras().get( "data" );

                        //Ti salvi la bitmap dove vuoi e/o fai partire un thread o un service che la manda al server

                }

                super.onActivityResult( requestCode, resultCode, data );
        }

Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Re:Gestione Fotocamera, foto e invio su server
« Risposta #4 il: 22 Luglio 2011, 10:34:27 CEST »
0
Ciao Ragazzi,
vi spiego meglio la cosa...

Nell'applicazione al momento ho un bottone che apre un menu e che ti chiede se vuoi scattare una foto o inviare una foto. Nel primo caso apre la fotocamera tramite l'intent nel secondo caso apre la Gallery -> Scegli la foto -> Invii al Server FTP.

Fino a qua tutto bene.

Adesso però l'invio della foto lo devo fare in un modo leggermente diverso. In un modulo (tipo il 730) ho messo un pulsante che richiama l'intent della Fotocamera.

Sono riuscito a metterci anche diversi parametri per settare la directory, il nome della foto ecc...
Mi apre l'intent, scatto la foto e mi crea anche la nuova directory con il nome della foto giusta.

A questo punto io vorrei sfruttare la pagina di invio al server che permette di visualizzare la foto e di inviarla.

Il problema è che non riesco dall'Uri a ricavare il percorso reale della foto da passare successivamente alla pagina FTP...

Posto un po' di codice cosi è più chiaro...

Questa pagina è quella che richiama la galleria prende la foto la visualizza in un imageview, dall'uri ricava il path reale e poi la invia al server!

Codice (Java): [Seleziona]
package ...

import ...

public class galleria extends MenuActivity implements OnTouchListener {
        float downXValue;
        public static String immagine;
        public static final int SELECT_IMAGE_CODE = 123;
        ProgressDialog progressDialog;

        String immagine_upload = "Immagine caricata con successo!";
        String immagine_fail = "Si sono verificati errori, riprovare più tardi!";
        static boolean upload = false;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                setContentView(R.layout.immagine);
                // Registriamo il LocationListener al provider GPS
                main.requestLocationUpdates();

                startActivityForResult(new Intent(Intent.ACTION_PICK,
                                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI),
                                SELECT_IMAGE_CODE);

                LayoutInflater inflater = getLayoutInflater();
                final View layout = inflater.inflate(R.layout.toast_layout,
                                (ViewGroup) findViewById(R.id.toast_layout_root));

                ImageView image = (ImageView) layout.findViewById(R.id.image);
                image.setImageResource(R.drawable.icon);
                final Toast toast = new Toast(getApplicationContext());
                toast.setGravity(Gravity.BOTTOM, 0, 50);
                toast.setDuration(Toast.LENGTH_LONG);
                toast.setView(layout);
               
                Button btnSend = (Button) findViewById(R.id.okButtonGallery);
                btnSend.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View v) {
                                progressDialog = ProgressDialog.show(galleria.this,
                                                "Attendere...", "Caricamento in corso...", true);
                                new Thread() {
                                        public void run() {
                                                try {
                                                        FtpClient();
                                                } catch (Exception e) {
                                                        e.printStackTrace();
                                                }
                                                // Dismiss the Dialog
                                               
                                                if (upload = true) {
                                                        TextView text = (TextView) layout.findViewById(R.id.text);
                                                        text.setText(immagine_upload);
                                                        progressDialog.dismiss();                                                      
                                                        toast.show();
                                                        try {
                                                                sleep(3000);
                                                        } catch (InterruptedException e) {
                                                                // TODO Auto-generated catch block
                                                                e.printStackTrace();
                                                        }
                                                } else {                                               
                                                        TextView text = (TextView) layout.findViewById(R.id.text);
                                                        text.setText(immagine_fail);
                                                        progressDialog.dismiss();
                                                        toast.show();
                                                        try {
                                                                sleep(3000);
                                                        } catch (InterruptedException e) {
                                                                // TODO Auto-generated catch block
                                                                e.printStackTrace();
                                                        }
                                                }                                              
                                                finish();
                                        }
                                }.start();

                        }
                });

                LinearLayout layMain = (LinearLayout) findViewById(R.id.layImmagine);
                layMain.setOnTouchListener((OnTouchListener) this);    
               
        }

        public void FtpClient() {
                final String MY_PREFERENCES = "MyPref";
                final String TEXT_DATA_USERNAME = "textDataUsername";
                final String TEXT_DATA_FTP = "textDataFtp";
                SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES,
                                Context.MODE_PRIVATE);
                String textDataUsername = prefs.getString(TEXT_DATA_USERNAME, "test");
                final String textDataFtp = prefs.getString(TEXT_DATA_FTP,
                                "xxx.xxx.xxx.xxx");
                final String directory = login.userDirectory;

                String[] split_string = TextUtils.split(immagine, "/");
                final String immagineSplit = split_string[5];

                FTPClient client = new FTPClient();
                try {
                        if (textDataFtp == "No Preferences!" || textDataFtp == "") {
                                InetAddress indirizzo = InetAddress
                                                .getByName("xxx.xxx.xxx.xxx");
                                client.connect(indirizzo);
                        } else {
                                InetAddress indirizzo = InetAddress.getByName(textDataFtp);
                                client.connect(indirizzo);
                        }
                         boolean loggato = client.login("username", "password");
                         boolean creadir = client.makeDirectory(directory);

                       
                        client.setFileType(FTP.BINARY_FILE_TYPE);

                        File file = new File(immagine);
                        FileInputStream fis = new FileInputStream(file);

                        client.changeWorkingDirectory(directory);

                        boolean upload_ok = client.storeFile(immagineSplit, fis);
                        fis.close();

                        if (upload_ok == true) {
                                upload = true;                 
                        } else {
                                upload = false;                        
                        }
                        client.disconnect();

                } catch (SocketException e) {
                        e.printStackTrace();
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                if (requestCode == SELECT_IMAGE_CODE
                                && resultCode == Activity.RESULT_OK) {
                        ((ImageView) findViewById(R.id.image)).setImageURI(data.getData());
                        Uri imageUri = data.getData();
                        immagine = getPath(imageUri);

                       
                } else if (requestCode == SELECT_IMAGE_CODE
                                && resultCode == Activity.RESULT_CANCELED) {
                        finish();
                }
                super.onActivityResult(requestCode, resultCode, data);
        }

        public String getPath(Uri uri) {
                String[] projection = { MediaStore.Images.Media.DATA };
                Cursor cursor = managedQuery(uri, projection, null, null, null);
                int column_index = cursor
                                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                cursor.moveToFirst();
                return cursor.getString(column_index);
        }

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
                if ((keyCode == KeyEvent.KEYCODE_BACK)) {
                        finish();
                }
                return super.onKeyDown(keyCode, event);
        }

        @Override
        public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN: {
                        downXValue = event.getX();
                        break;
                }

                case MotionEvent.ACTION_UP: {
                        float currentX = event.getX();

                        if (downXValue < currentX) {
                                finish();
                        }
                         if (downXValue > currentX) {
                        }
                        break;
                }
                }
                return true;
        }
}

Questa cosa sto cercando di farla nella pagina del modulo...

Codice (Java): [Seleziona]
public class modulo5 extends MenuActivity {
       
        public static boolean scattafoto;
        ProgressDialog progressDialog;
        public static Uri uri;
        public static String foto_scattata;
        public static final int SELECT_IMAGE_CODE = 123;
        static boolean upload = false;
       
        public static String textBtnScattaFoto = "Scatta Foto";
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.modulo5);

                // Registriamo il LocationListener al provider GPS
                 main.requestLocationUpdates();

                Button btnScattaFoto = (Button) findViewById(R.id.BtnPhoto);
                btnScattaFoto.setText(textBtnScattaFoto);
                btnScattaFoto.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                                if (scattafoto == false) {
                                        scattafoto = true;
                                        File imageDirectory = new File("/sdcard/modulo/"
                                                        + wscaller.idModulo);

                                        String path = imageDirectory.toString().toLowerCase();
                                        String name = imageDirectory.getName().toLowerCase();

                                        Calendar calendar = Calendar.getInstance();
                                        int year = calendar.get(Calendar.YEAR);
                                        int month = calendar.get(Calendar.MONTH);
                                        int day = calendar.get(Calendar.DAY_OF_MONTH);
                                        int hour = calendar.get(Calendar.HOUR_OF_DAY);
                                        int minute = calendar.get(Calendar.MINUTE);
                                        int second = calendar.get(Calendar.SECOND);
                                        String filename = String.format("modulo_"
                                                        + wscaller.idModulo
                                                        + "_%02d-%02d-%4d-%02d-%02d-%02d", day,
                                                        (month + 1), year, hour, minute, second);
                                        ContentValues values = new ContentValues();

                                        values.put(Media.TITLE, "Image");
                                        values.put(Images.Media.BUCKET_ID, path.hashCode());
                                        values.put(Images.Media.BUCKET_DISPLAY_NAME, name);
                                        values.put(Images.Media.MIME_TYPE, "image/jpeg");
                                        values.put(Media.DESCRIPTION, "Immagine scattata!");
                                        values.put("_data", "/sdcard/moduli/" + filename
                                                        + ".jpg");

                                        uri = getContentResolver().insert(
                                                        Media.EXTERNAL_CONTENT_URI, values);

                                        Intent i = new Intent("android.media.action.IMAGE_CAPTURE");
                                        i.putExtra(MediaStore.EXTRA_OUTPUT, uri);
                                        startActivityForResult(i, 0);

                                } else {
                                        scattafoto = false;
                                }
                        }
                });

        }

         protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                        //scattafoto = true;
                        //textBtnScattaFoto = ("Invia Foto");
                        //Uri uri = data.getData();
                        uri = data.getData();
                        foto_scattata = getPath(uri);
                        FtpClient();           
                super.onActivityResult(requestCode, resultCode, data);
        }      

                public String getPath(Uri uri) {
                String[] projection = { MediaStore.Images.Media.DATA };
                Cursor cursor = managedQuery(uri, projection, null, null, null);
                int column_index = cursor
                                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                cursor.moveToFirst();
                return cursor.getString(column_index);
        }

                public void FtpClient() {
                final String MY_PREFERENCES = "MyPref";
                final String TEXT_DATA_USERNAME = "textDataUsername";
                final String TEXT_DATA_FTP = "textDataFtp";
                SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES,
                                Context.MODE_PRIVATE);
                String textDataUsername = prefs.getString(TEXT_DATA_USERNAME, "test");
                final String textDataFtp = prefs.getString(TEXT_DATA_FTP,
                                "xxx.xxx.xxx.xxx");
                final String directory = login.userDirectory;

                String[] split_string = TextUtils.split(foto_scattata, "/");
                final String immagineSplit = split_string[5];

                FTPClient client = new FTPClient();
                try {
                        if (textDataFtp == "No Preferences!" || textDataFtp == "") {
                                InetAddress indirizzo = InetAddress
                                                .getByName("xxx.xxx.xxx.xx");
                                client.connect(indirizzo);
                        } else {
                                InetAddress indirizzo = InetAddress.getByName(textDataFtp);
                                client.connect(indirizzo);
                        }
                        boolean loggato = client.login("username", "password");
                       
                        boolean creadir = client.makeDirectory(directory);

                       
                        client.setFileType(FTP.BINARY_FILE_TYPE);
                        File file = new File(foto_scattata);
                        FileInputStream fis = new FileInputStream(file);

                        client.changeWorkingDirectory(directory);

                        boolean upload_ok = client.storeFile(immagineSplit, fis);
                        fis.close();

                        if (upload_ok == true) {
                                upload = true;                 
                        } else {
                                upload = false;                        
                        }
                        client.disconnect();

                } catch (SocketException e) {
                        e.printStackTrace();
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }

@Override
        protected void onSaveInstanceState(Bundle outState) {
                super.onSaveInstanceState(outState);
        }

        @Override
        protected void onPause() {
                super.onPause();
        }

        @Override
        protected void onResume() {
                super.onResume();
        }
}

Quando nella pagina modulo faccio questo
Codice (Java): [Seleziona]
 foto_scattata = getPath(uri); mi va in errore... Se riesco a risolvere questo problema penso che la cosa sia fatta, perchè poi passo il percorso della foto a FtpClient(); e sparo la foto sul server!

Spero adesso sia più chiaro per voi che sicuramente siete più bravi di me (ho iniziato a programmare in Java a Marzo...) abbiate pietà di me ;)
« Ultima modifica: 22 Luglio 2011, 10:37:40 CEST da menion83 »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Gestione Fotocamera, foto e invio su server
« Risposta #5 il: 22 Luglio 2011, 10:54:21 CEST »
0
Quando nella pagina modulo faccio questo
Codice (Java): [Seleziona]
 foto_scattata = getPath(uri); mi va in errore..

Dovresti postare il Logcat, è la cosa più importante.
Il codice che usi per ricavare il path è giusto, anche io lo uso.

Comunque, se ti serve aprire un InputStream a partire dall'Uri puoi usare questo metodo, che ti evita di dover pescare il path dell'immagine:

http://developer.android.com/reference/android/content/ContentResolver.html#openInputStream(android.net.Uri)

L'oggetto di tipo ContentResolver lo puoi ottenere facendo getContentResolver() dentro una qualsiasi activity.



Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Re:Gestione Fotocamera, foto e invio su server
« Risposta #6 il: 22 Luglio 2011, 11:08:33 CEST »
0
Questo è il logcat relativo agli errori:

Codice (Text): [Seleziona]
07-22 10:59:45.042: ERROR/wpa_supplicant(10536): wpa_supplicant_event_scan_results : state=[b]
07-22 10:59:46.042: ERROR/wpa_supplicant(10536): wpa_supplicant_event_scan_results : state=[b]
07-22 10:59:46.738: ERROR/wpa_supplicant(10536): wpa_supplicant_event_scan_results : state=[b]
07-22 10:59:48.039: ERROR/WindowManager(2513): Overwriting rotation value from 1
07-22 10:59:48.054: ERROR/SurfaceFlinger(2513): Surface Flinger::setOrientation  mIsRotationPossible = 0, nBackupOrientationValue = 201  
07-22 10:59:48.054: ERROR/TvOut-Observer(2513): SetOrientation
07-22 10:59:49.320: ERROR/Camera(17932): initRemains()
07-22 10:59:49.320: ERROR/TwIndicatorsRemainCount(17932): setRemainCount1680
07-22 10:59:49.347: ERROR/CameraEngine(17932): join SearchThread
07-22 10:59:49.425: ERROR/AbstractCameraActivity(17932): bAutoBrightness = false, VALUES = 1.0
07-22 10:59:49.558: ERROR/SensorManager(17932): ####### akmd2 started!!!
07-22 10:59:49.574: ERROR/SecCamera-JNI-Cpp(17932): JNI_OnLoad
07-22 10:59:49.574: ERROR/SecCamera-JNI-Java(17932): SecCamera.open()
07-22 10:59:49.683: ERROR/CameraHardwareSec(2396): Smartautoscene thread was already stop
07-22 10:59:49.683: ERROR/SecCamera(2396): Blur is not setting in Back camera.
07-22 10:59:49.738: ERROR/MediaPlayerService(2396): Client::notify In
07-22 10:59:49.738: ERROR/MediaPlayer(2396): message received msg=1, ext1=0, ext2=0
07-22 10:59:49.746: ERROR/MediaPlayerService(2396): Client::notify In
07-22 10:59:49.746: ERROR/MediaPlayer(2396): message received msg=1, ext1=0, ext2=0
07-22 10:59:49.871: ERROR/CameraHardwareSec(2396): Smartautoscene thread was already stop
07-22 10:59:49.871: ERROR/SecCamera(2396): Blur is not setting in Back camera.
07-22 10:59:49.875: ERROR/CameraEngine(17932): getGpsLocation : loc is null
07-22 10:59:50.015: ERROR/CameraHardwareSec(2396): Smartautoscene thread was already stop
07-22 10:59:50.015: ERROR/SecCamera(2396): Blur is not setting in Back camera.
07-22 10:59:50.046: ERROR/SensorManager(17932): registerListener 1:BMA150 delay:240
07-22 10:59:50.062: ERROR/SensorManager(17932): =======>>>Sensor Thread RUNNING <<<========
07-22 10:59:50.074: ERROR/Sensors(2513): +sensors_control_delay: acc ms=60
07-22 10:59:50.074: ERROR/Sensors(2513): Write acc delay /sys/class/input/input3/poll_delay <---60
07-22 10:59:50.074: ERROR/Sensors(2513): +sensors_control_delay: gyro ms=60
07-22 10:59:50.074: ERROR/Sensors(2513): Write gyro delay /sys/class/input/input5/poll_delay <---60
07-22 10:59:53.164: ERROR/Camera(17932): Initialize Camera Sound
07-22 10:59:53.195: ERROR/CeStatePreviewing(17932): invalid request id for current state
07-22 10:59:54.207: ERROR/CameraSideMenu(17932): onTouch : 32 Event : 0
07-22 10:59:54.210: ERROR/CeRequestQueue(17932): removeRequest queue empty
07-22 10:59:54.339: ERROR/CameraSideMenu(17932): onTouch : 32 Event : 1
07-22 10:59:54.582: ERROR/SecCamera-JNI-Java(17932): postEventFromNative
07-22 10:59:54.726: ERROR/SensorManager(17932): unregisterListener: android.view.OrientationEventListener$SensorEventListenerImpl@482c2c68
07-22 10:59:54.746: ERROR/Sensors(2513): +sensors_control_delay: acc ms=60
07-22 10:59:54.750: ERROR/Sensors(2513): Write acc delay /sys/class/input/input3/poll_delay <---60
07-22 10:59:54.750: ERROR/Sensors(2513): +sensors_control_delay: gyro ms=60
07-22 10:59:54.753: ERROR/Sensors(2513): Write gyro delay /sys/class/input/input5/poll_delay <---60
07-22 10:59:54.769: ERROR/CameraEngine(17932): getGpsLocation : loc is null
07-22 10:59:54.769: ERROR/CameraEngine(17932): getOrintationForExif() mLastOrientation : -1
07-22 10:59:54.773: ERROR/charisamkun(17932): roundOrientation(retVal) = 0
07-22 10:59:54.773: ERROR/CameraEngine(17932): doTakePictureAsync() mOrientationOnTake : 90
07-22 10:59:54.820: ERROR/CameraHardwareSec(2396): Smartautoscene thread was already stop
07-22 10:59:54.820: ERROR/SecCamera(2396): Blur is not setting in Back camera.
07-22 10:59:54.820: ERROR/SecCamera(2396): stopPreview: m_flag_camera_start is zero
07-22 10:59:55.539: ERROR/SecCamera-JNI-Java(17932): postEventFromNative
07-22 10:59:55.769: ERROR/CameraHardwareSec(2396): decodeInterleaveData Start~~~
07-22 10:59:55.910: ERROR/CameraHardwareSec(2396): decodeInterleaveData End~~~
07-22 10:59:55.925: ERROR/SecCamera-JNI-Java(17932): postEventFromNative
07-22 10:59:56.003: ERROR/CameraEngine(17932): getLastCaptureData().getCaptureData() is com.sec.android.app.camera.CaptureData@48363320
07-22 10:59:56.003: ERROR/CameraEngine(17932): mLastOrientation is -1
07-22 10:59:56.003: ERROR/CameraEngine(17932): mLastContentUri is content://media/external/images/media/17176
07-22 10:59:56.105: ERROR/Camera(17932): lastPictureThumb is....android.graphics.Bitmap@482f05b0
07-22 10:59:56.105: ERROR/Camera(17932): isCapture: true
07-22 10:59:56.105: ERROR/TwIndicatorsRemainCount(17932): setRemainCount1679
07-22 10:59:56.195: ERROR/CameraEngine(17932): join StartPreviewThread
07-22 10:59:56.199: ERROR/CeRequestQueue(17932): removeRequest queue empty
07-22 10:59:56.242: ERROR/AbstractCameraActivity(17932): onPause()
07-22 10:59:56.289: ERROR/SecCamera(2396): stopPreview: m_flag_camera_start is zero
07-22 10:59:56.289: ERROR/SecCamera(2396): stopPreview: m_flag_camera_start is zero
07-22 10:59:56.324: ERROR/WindowManager(2513): Overwriting rotation value from 0
07-22 10:59:56.343: ERROR/SurfaceFlinger(2513): Surface Flinger::setOrientation  mIsRotationPossible = 0, nBackupOrientationValue = 0  
07-22 10:59:56.343: ERROR/TvOut-Observer(2513): SetOrientation
07-22 10:59:57.859: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 10:59:57.859: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 10:59:57.859: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 10:59:57.859: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 10:59:57.859: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 10:59:59.406: ERROR/RotateBitmap(17960): getRotateMatrix entered
07-22 10:59:59.406: ERROR/RotateBitmap(17960): getRotateMatrix exit
07-22 10:59:59.406: ERROR/ImageViewTouchBase(17960): setImageBitmap entered
07-22 10:59:59.406: ERROR/ImageViewTouchBase(17960): setImageBitmap exit
07-22 10:59:59.406: ERROR/RotateBitmap(17960): getRotateMatrix entered
07-22 10:59:59.406: ERROR/RotateBitmap(17960): getRotateMatrix exit
07-22 10:59:59.445: ERROR/RotateBitmap(17960): getRotateMatrix entered
07-22 10:59:59.445: ERROR/RotateBitmap(17960): getRotateMatrix exit
07-22 10:59:59.550: ERROR/RotateBitmap(17960): getRotateMatrix entered
07-22 10:59:59.550: ERROR/RotateBitmap(17960): getRotateMatrix exit
07-22 11:00:06.171: ERROR/WindowManager(2513): Overwriting rotation value from 1
07-22 11:00:06.195: ERROR/SurfaceFlinger(2513): Surface Flinger::setOrientation  mIsRotationPossible = 0, nBackupOrientationValue = 201  
07-22 11:00:06.195: ERROR/TvOut-Observer(2513): SetOrientation
07-22 11:00:08.105: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 11:00:08.105: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 11:00:08.105: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 11:00:08.105: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 11:00:08.105: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 11:00:11.320: ERROR/WindowManager(2513): Overwriting rotation value from 0
07-22 11:00:11.476: ERROR/SurfaceFlinger(2513): Surface Flinger::setOrientation  mIsRotationPossible = 0, nBackupOrientationValue = 0  
07-22 11:00:11.476: ERROR/TvOut-Observer(2513): SetOrientation
07-22 11:00:12.710: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 11:00:12.710: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 11:00:12.710: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 11:00:12.710: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 11:00:12.710: ERROR/GoKeyboard(2598): error setSuggestions isNotInput()!
07-22 11:00:13.921: ERROR/AndroidRuntime(17893): FATAL EXCEPTION: main
07-22 11:00:13.921: ERROR/AndroidRuntime(17893): java.lang.RuntimeException: Unable to resume activity {progetto.com/progetto.com.modulo.modulo5}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {progetto.com/progetto.com.modulo.modulo5}: java.lang.NullPointerException
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3128)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3143)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2684)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3815)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.ActivityThread.access$2400(ActivityThread.java:125)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2037)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.os.Looper.loop(Looper.java:123)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.ActivityThread.main(ActivityThread.java:4627)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at java.lang.reflect.Method.invokeNative(Native Method)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at java.lang.reflect.Method.invoke(Method.java:521)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at dalvik.system.NativeStart.main(Native Method)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893): Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {progetto.com/progetto.com.modulo.modulo5}: java.lang.NullPointerException
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3515)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3115)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     ... 13 more
07-22 11:00:13.921: ERROR/AndroidRuntime(17893): Caused by: java.lang.NullPointerException
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at progetto.com.modulo.modulo5.onActivityResult(modulo5.java:578)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.Activity.dispatchActivityResult(Activity.java:3890)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3511)
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     ... 14 more
07-22 11:00:46.445: ERROR/WindowManager(2513): Overwriting rotation value from 0
07-22 11:00:46.769: ERROR/Camera(17932): onDestroy() exit
07-22 11:00:50.019: ERROR/Taebong(2513): SecFeature.MUTE_EMAIL_NOTI_SOUND_IN_CALL3
07-22 11:00:50.238: ERROR/OsclAsyncFile(2396): OsclAsyncFile::ConstructL!!
07-22 11:00:50.285: ERROR/OsclAsyncFile(2396): OsclAsyncFile::ConstructL!!
07-22 11:00:50.312: ERROR/PlayerDriver(2396): PlayerDriver::handleTvOut state=[1]
07-22 11:00:50.312: ERROR/PlayerDriver(2396): PlayerDriver::it is not a DRM file.So don't suspend TVOUT

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Gestione Fotocamera, foto e invio su server
« Risposta #7 il: 22 Luglio 2011, 11:21:41 CEST »
0
Codice: [Seleziona]
07-22 11:00:13.921: ERROR/AndroidRuntime(17893): Caused by: java.lang.NullPointerException
07-22 11:00:13.921: ERROR/AndroidRuntime(17893):     at progetto.com.modulo.modulo5.onActivityResult(modulo5.java:578)

Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Re:Gestione Fotocamera, foto e invio su server
« Risposta #8 il: 22 Luglio 2011, 11:30:11 CEST »
0
Se metto un breakpoint su
Codice (Java): [Seleziona]
uri = data.getData();
uri contiene il content della foto:
Codice (Text): [Seleziona]
content://media/external/images/media/17176 come mai da un java.lang.NullPointerException quando devo fare:
Codice (Java): [Seleziona]
foto_scattata = getPath(uri);?

Grazie per l'aiuto!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Gestione Fotocamera, foto e invio su server
« Risposta #9 il: 22 Luglio 2011, 11:36:23 CEST »
0
Se metto un breakpoint su
Codice (Java): [Seleziona]
uri = data.getData();
uri contiene il content della foto:
Codice (Text): [Seleziona]
content://media/external/images/media/17176 come mai da un java.lang.NullPointerException quando devo fare:
Codice (Java): [Seleziona]
foto_scattata = getPath(uri);?

Grazie per l'aiuto!

Usa il metodo per aprire direttamente lo stream senza doverti andare a prendere il path!

Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Re:Gestione Fotocamera, foto e invio su server
« Risposta #10 il: 22 Luglio 2011, 12:10:15 CEST »
0
Sto provando una cosa simile ma da sempre errore...

Codice (Java): [Seleziona]
uri = data.getData();
                try {
                        InputStream foto = this.getContentResolver().openInputStream(uri);
                        foto_scattata = foto.toString();
                } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

Sicuramente sbaglio qualcosa ma non riesco a vederlo...

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Gestione Fotocamera, foto e invio su server
« Risposta #11 il: 22 Luglio 2011, 12:20:58 CEST »
0
Fare un .toString su un InputStream non mi sembra una cosa molto sensata. Dall'InputStream leggi i dati che sono contenuti nel file...

Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Re:Gestione Fotocamera, foto e invio su server
« Risposta #12 il: 22 Luglio 2011, 12:33:55 CEST »
0
Stavo riprovando con il path...

Codice (Java): [Seleziona]
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                scattafoto = true;
                textBtnScattaFoto = ("Invia Foto");

                uri = data.getData();
                foto_scattata = getPath(uri);

                FtpClient();
                super.onActivityResult(requestCode, resultCode, data);
        }

Codice (Java): [Seleziona]
uri = data.getData();
Mi da data = null, eccolo qua l'errore...
Come posso risolverlo?
Per usare FTPClient() ho bisogno del path dell'immagine!