2013-05-22 1 views
0

Salut Je suis à la recherche d'un moyen de sauvegarder les photos de l'appareil de la caméra directement sans demander à l'utilisateur d'enregistrer ou non. Je ne suis pas en train d'implémenter les classes Camera ou de l'ignorer. J'utilise simplement ce code ci-dessus. Avez-vous des idées sur la façon de le faire?comment sauvegarde automatique de la caméra photo sans demander l'utilisateur (facilement moyen)

TextReader tr = new TextReader(TextReader.DIRECTORY_EMPRESAS); 
String path = TextReader.PARENT_PATH + "/" + TextReader.DIRECTORY_IMAGES; 
String dataAtual = new SimpleDateFormat("yyMMddHHmmss").format(new Date()); 

if(tr.verificaDiretorios(path)){ 
    String pictureName = dataAtual + DADOS.get(0) + ".jpg"; 
    File pathEmpresa = new File(path + "/" + TextReader.FILE_NAME); 
    File imageFile; 

    if(pathEmpresa.exists()){ 
     imageFile = new File(pathEmpresa, pictureName);   
     Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile)); 
     //startActivity(i); 
     startActivityForResult(i, 2); 

    }else{ 
     if(pathEmpresa.mkdir()){   
      imageFile = new File(pathEmpresa, pictureName);  
      Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile)); 
      //startActivity(i); 
      startActivityForResult(i, 2); 
     }else{ 
      throw new IllegalStateException("Não foi possivel criar o diretorio: " +   pathEmpresa); 
     } 
}  

Répondre

0

Vous ne pouvez pas faire cela avec un Intent. Vous devez utiliser la classe Camera.

Se reporter à la documentation:

http://developer.android.com/reference/android/hardware/Camera.html


Exemple rapide:

Camera camera = camera.open(); 
camera.takePicture(null, null, new Camera.PictureCallback() { 
    public void onPictureTaken(byte[] data, Camera camera) { 
     if (data != null) { 
      Bitmap picture = BitmapFactory.decodeByteArray(data); 
      File f = new File(Environment.getExternalStorageDirectory(), "mydir"); 
      f.mkdirs();//Grab file directory 
      f = new File(f, "mypicturefilename"); //Grab picture file location 
      BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(f)); 
      picture.compress(CompressFormat.JPEG, os);//Write image to file 
      picture.recycle(); //Clean up 
     } 
    } 
}); 
+0

Merci @Zed Scio. Savez-vous quelles méthodes remplacer à partir de la classe Camera devrais-je implémenter pour l'enregistrer directement? – Dennis

+0

@Dennis J'ai mis à jour la réponse pour inclure un exemple rapide. –

+0

Je vais faire quelques personnalisations dans mon logiciel plus tard sur les tests, alors je vais utiliser votre exemple. Merci – Dennis

Questions connexes