¿Cómo enviar una foto a Instagram usando mi aplicación de Android?
Mi aplicación toma fotos y quiero compartirla en Instagram.
Mi aplicación guarda la imagen en este directorio
- Intención de la cámara no volver a llamar a la actividad
- ¿Cómo puedo mostrar una imagen que acabo de sacar de mi cámara en mi aplicación Android?
- Datos Exif TAG_ORIENTATION siempre 0
- Android: subir fotos
- Aumentar la calidad / claridad / brillo de las fotos tomadas con la cámara android
File storagePath = new File(Environment.getExternalStorageDirectory() + "/DCIM/Camera/tubagram");
Ahora estoy intentando conseguir la última imagen que tomé para compartir en Instagram usando este código
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); shareIntent.setType("image/*"); final ContentResolver cr = getContentResolver(); final String[] p1 = new String[] {MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATE_TAKEN}; Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC"); if (c1.moveToFirst() ) { Log.i("Teste", "last picture (" + c1.getString(0) + ") taken on: " + new Date(c1.getLong(1))); } shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+Environment.getExternalStorageDirectory() + "/DCIM/Camera/tubagram/" + c1.getString(0))); shareIntent.setPackage("com.instagram.android"); c1.close(); startActivity(shareIntent);
Recibo un Toast con este mensaje de error "No se puede descargar el archivo". Este brindis es enviado por Instagram.
He intentado usar este ejemplo de enlace – compartir una foto en instagram – pero no funcionó.
¡¡¡Ayudame por favor!!!
- ¿Cómo tomar una foto y enviar a HTTP POST solicitud con Android?
- Android - Get Contact Foto del número de teléfono
- ¿La mejor manera de ocultar una imagen en android?
- Una "Antes y Después" comparación de imágenes Slide Control en Andorid
- ¿Cómo puedo agregar una imagen de contacto dentro de ContentProviderOperation?
- ¿Cómo puedo crear efectos de fotos en Android?
- Android, subir una foto para alojar en imgur programatically
- La orientación de la cámara de Android se inició con la intención ACTION_IMAGE_CAPTURE
Resolví mi problema.
Añado esta línea después de la cámara.takePicture.
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
Esta línea hace una "actualización" y después de que el teléfono reconozca las fotos de noticias guardadas en su teléfono.
Y hice algunos cambios en mi método
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); shareIntent.setType("image/*"); final ContentResolver cr = getContentResolver(); final String[] p1 = new String[] { MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.TITLE, MediaStore.Images.ImageColumns.DATE_TAKEN }; Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC"); if (c1.moveToFirst() ) { Log.i("Teste", "last picture (" + c1.getString(1) + ") taken on: " + new Date(c1.getLong(2))); } Log.i("Caminho download imagem", "file://"+Environment.getExternalStorageDirectory()+ "/Tubagram/" + c1.getString(1) + ".png"); shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+Environment.getExternalStorageDirectory()+ "/Tubagram/" + c1.getString(1)+".png")); shareIntent.setPackage("com.instagram.android"); c1.close(); startActivity(shareIntent);
Y con este otro método comprobar si el Instagram está instalado en el teléfono
private boolean verificaInstagram(){ boolean installed = false; try { ApplicationInfo info = getPackageManager().getApplicationInfo("com.instagram.android", 0); installed = true; } catch (NameNotFoundException e) { installed = false; } return installed; }
Poner este código en su oyente de botón de clic que le redireccionará en la aplicación y asegúrese de que su dispositivo ha instalado la aplicación Instagram.
String type = "image/*"; imageview.buildDrawingCache(); Bitmap bmap = imageview.getDrawingCache(); Uri bmpUri = getLocalBitmapUri(bmap); Intent share = new Intent(Intent.ACTION_SEND); if (Utils.isPackageExisted(ActivityFullScreenJoke.this,"com.instagram.android")) { share.setPackage("com.instagram.android"); } share.setType(type); share.putExtra(Intent.EXTRA_STREAM, bmpUri); startActivity(Intent.createChooser(share, "Share to"));