Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Android-eclipse] Intent fotocamera e salva

    Salve, sto scrivendo la tesi per la mia laurea e mi sono bloccato su un punto chiave del mio programma...Sto cercando di fare 2 intent, 1 su aprire la galleria delle immagini, selezionare una foto e mandare l'indirizzo su un'atra activity, invece la seconda è quella di aprire la fotocamera, scattare una foto e salvarla in una cartella creata da me. I problemi sono i seguenti, quando scatto la foto mi crasha tutto e il secondo che quando annullo la scelta della galleria mi crasha. Mi serve un professionista e nn so dove altro andare. Vi ringrazio per il tempo che vi sto facendo perdere.

    codice:
    public class AddActivity extends Activity {
        public static final int IMAGE_CODE=123;
        private static final int PHOTO_CODE = 1;
        private Uri fileUri;
    
    
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_add);
    		init();
    	}
    
    		private void init()
    	{
    			ImageButton b1 = (ImageButton) findViewById(R.id.imageButton1);
    			ImageButton b2 = (ImageButton) findViewById(R.id.imageButton2);
    			b1.setOnClickListener(new View.OnClickListener() 
    			{
    			@Override
    			  public void onClick(View view) 
    			{ 
    			    startActivityForResult(new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI),IMAGE_CODE);
    			  }
    			});
    		b2.setOnClickListener(new View.OnClickListener() {
    			@Override
    			  public void onClick(View view) 
    			{ 
    				if(checkCameraHdw(getBaseContext()))
    				{
    				
    				Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    
    		            fileUri = getOutputMediaFile(); // creare un file x salvare
    			    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set nome foto
    			    
    			    // start the image capture Intent
    			    startActivityForResult(intent, PHOTO_CODE);
    				}
    				
    			  }
    			});
    
    	}
    	protected void onActivityResult(int requestCode, int resultCode, Intent data) {   
    	        if (requestCode == IMAGE_CODE) 
    	        {
    	            if (resultCode == RESULT_OK) 
    		        {
    		                String pathImage=data.getDataString();
    		      			Intent myIntent = new Intent(this, FormaddActivity.class);
    		      			myIntent.putExtra("path",pathImage);
    		      			startActivity(myIntent);
    		        }
                } else if (resultCode == RESULT_CANCELED) {
                    // User cancelleto
                } else {
                    // fallito
                }
    		        if (requestCode == PHOTO_CODE) {
    		            if (resultCode == RESULT_OK) {
    		                // Image captured and saved to fileUri specified in the Intent
    		                Toast.makeText(this, "Image saved to:\n" +
    		                         data.getData(), Toast.LENGTH_LONG).show();
    		            } else if (resultCode == RESULT_CANCELED) {
    		                // User cancellato
    		            } else {
    		                // Scatto fallito
    		            }
    		        }
    
    
    		}
    		/** Controllo se è presente la fotocamera */
    		private boolean checkCameraHdw(Context context) {
    		    if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){
    		        return true;
    		    } else {
                    Toast.makeText(this, "Il dispositivo non ha la fotocamera",Toast.LENGTH_LONG).show();
    		        return false;
    		    }
    		}
    		
    		
    
    		private Uri getOutputMediaFile(){
    		  File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
    		              Environment.DIRECTORY_PICTURES), "VirtuoSa");
    
    		    if (! mediaStorageDir.exists()){
    		        if (! mediaStorageDir.mkdirs()){
    	                Toast.makeText(this, "Non è stato possibile salvare la foto",Toast.LENGTH_LONG).show();
    		            return null;
    		        }
    		    }
    
    		    // Crea a media file name
    		    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    		    File mediaFile;
    
    		        mediaFile = new File(mediaStorageDir.getPath() + File.separator +
    		        "IMG_"+ timeStamp + ".jpg");
    
    	            Toast.makeText(this, "onActivityResult"+ mediaFile,Toast.LENGTH_LONG).show();
    		        return Uri.fromFile(mediaFile);
    		}
    
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.add, menu);
    		return true;
    	}
    
    }

  2. #2
    Inserisco anche il Logcat.

    09-27 10:49:24.471: W/dalvikvm(793): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
    09-27 10:49:24.551: E/AndroidRuntime(793): FATAL EXCEPTION: main
    09-27 10:49:24.551: E/AndroidRuntime(793): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {it.Scuderi.tesi/it.Scuderi.tesi.AddActivity}: java.lang.NullPointerException
    09-27 10:49:24.551: E/AndroidRuntime(793): at android.app.ActivityThread.deliverResults(Activity Thread.java:3319)
    09-27 10:49:24.551: E/AndroidRuntime(793): at android.app.ActivityThread.handleSendResult(Activi tyThread.java:3362)
    09-27 10:49:24.551: E/AndroidRuntime(793): at android.app.ActivityThread.access$1100(ActivityThr ead.java:141)
    09-27 10:49:24.551: E/AndroidRuntime(793): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1282)
    09-27 10:49:24.551: E/AndroidRuntime(793): at android.os.Handler.dispatchMessage(Handler.java:99 )
    09-27 10:49:24.551: E/AndroidRuntime(793): at android.os.Looper.loop(Looper.java:137)
    09-27 10:49:24.551: E/AndroidRuntime(793): at android.app.ActivityThread.main(ActivityThread.jav a:5041)
    09-27 10:49:24.551: E/AndroidRuntime(793): at java.lang.reflect.Method.invokeNative(Native Method)
    09-27 10:49:24.551: E/AndroidRuntime(793): at java.lang.reflect.Method.invoke(Method.java:511)
    09-27 10:49:24.551: E/AndroidRuntime(793): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:793)
    09-27 10:49:24.551: E/AndroidRuntime(793): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:560)
    09-27 10:49:24.551: E/AndroidRuntime(793): at dalvik.system.NativeStart.main(Native Method)
    09-27 10:49:24.551: E/AndroidRuntime(793): Caused by: java.lang.NullPointerException
    09-27 10:49:24.551: E/AndroidRuntime(793): at it.Scuderi.tesi.AddActivity.onActivityResult(AddAc tivity.java:72)
    09-27 10:49:24.551: E/AndroidRuntime(793): at android.app.Activity.dispatchActivityResult(Activi ty.java:5293)
    09-27 10:49:24.551: E/AndroidRuntime(793): at android.app.ActivityThread.deliverResults(Activity Thread.java:3315)
    09-27 10:49:24.551: E/AndroidRuntime(793): ... 11 more
    09-27 10:49:28.401: E/Trace(844): error opening trace file: No such file or directory (2)


    plz help

  3. #3

    Moderazione

    Le discussioni relative a Android non sono trattate qui, ma nella sezione Java.

    Provvedo a spostare il thread.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Potrebbe cortesemte cancellare il mio post, per problemi di ricerca avanzate sulla tesi. Cordiali saluti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.