Cargar la imagen capturada en Cloudinary directamente en Android

Quiero capturar una imagen y subirla a Cloudinary directamente. ¿Cómo puedo saber el nombre de la imagen para establecerlo en la declaración de subida cloudinary.uploader().upload("nameofthepic", Cloudinary.emptyMap()); .

Aquí está mi código:

 public class Camera extends ActionBarActivity implements View.OnClickListener { Button b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.camera); b= (Button) findViewById(R.id.button); b.setOnClickListener(this); } public static final int TAKE_PHOTO_REQUEST = 0; @Override public void onClick(View v) { Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(takePhotoIntent, TAKE_PHOTO_REQUEST); Map config = new HashMap(); config.put("cloud_name", "dkepfkeuu"); config.put("api_key", "552563677649679"); config.put("api_secret", "7n8wJ42Hr_6nqZ4aOMDXjTIZ4P0"); Cloudinary cloudinary = new Cloudinary(config); try { cloudinary.uploader().upload("", Cloudinary.emptyMap()); } catch (IOException e) { e.printStackTrace(); } } } 

El orden es como esto: Tome la foto-> excepto al archivo-> upload al cloudinary Aquí está el código:

 File photoFile; @Override public void onClick(View v) { Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (takePhotoIntent.resolveActivity(getPackageManager()) != null) { // Create the File where the photo should go photoFile = null; try { photoFile = createImageFile(); } catch (IOException ex) { // Error occurred while creating the File } // Continue only if the File was successfully created if (photoFile != null) { takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile)); startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO); } } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_TAKE_PHOTO) { if (resultCode == RESULT_OK) { //File to upload to cloudinary Map config = new HashMap(); config.put("cloud_name", "dkepfkeuu"); config.put("api_key", "552563677649679"); config.put("api_secret", "7n8wJ42Hr_6nqZ4aOMDXjTIZ4P0"); Cloudinary cloudinary = new Cloudinary(config); try { cloudinary.uploader().upload(photoFile.getAbsolutePath(), Cloudinary.emptyMap()); } catch (IOException e) { e.printStackTrace(); } } else if (resultCode == RESULT_CANCELED) { // User cancelled the image capture //finish(); } } } private File createImageFile() throws IOException { // Create an image file name String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); String imageFileName = "capturedImage"; File storageDir = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES); File image = File.createTempFile( imageFileName, /* prefix */ ".jpg", /* suffix */ storageDir /* directory */ ); // Save a file: path for use with ACTION_VIEW intents return image; } 

Por lo tanto, está cargando realmente photoFile que es la imagen realmente capturada.

Su agradable para poner la función de carga junto con algunas transformaciones de imagen (escala, cambiar el tamaño) en AsyncTask porque las imágenes de la cámara en los teléfonos modernos son bastante grandes (en tamaño).

Espero eso ayude.

  • Cómo grabar todos los touch and acclerometer en un dispositivo Android en TODAS las aplicaciones
  • ¿Cómo puedo tomar una captura de pantalla de una vista web, capturar la página completa?
  • Captura una secuencia RTSP en un dispositivo Android
  • Camino a capturas de pantalla en Android
  • Visualización compartida de Android en otros dispositivos
  • Cómo tomar una instantánea de la aplicación de pantalla no sólo en Android con código
  • Cámara android cámara2 manejar zoom
  • Captura de pantalla del código
  • Adición de un marco de imagen o marca de agua para vídeo en Android mediante programación
  • Android VpnService para capturar paquetes no captura paquetes
  • ¿Cómo TeamViewer toma capturas de pantalla y permite el control remoto sin root?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.