J'ai ce code:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
startActivity(intent);
Qui va lancer avec succès une application de messagerie sur Android.
Mais comment puis-je joindre un objet bitmap lors du lancement de l'intention?
J'ai lu - http://developer.androïd.com/reference/andrroid/content/intent.html , la chose du placard à ce dont j'ai besoin est extra_stream, comme ceci:
intention2.putextra (intention.extra_stream, _uri);
Mais mon cas, j'ai une référence de bitmap objet, pas une URI d'un bitmap.
S'il vous plaît dites-moi quoi faire pour attacher un objet bitmap?
String pathofBmp = Images.Media.insertImage(getContentResolver(), bitmap,"title", null);
Uri bmpUri = Uri.parse(pathofBmp);
final Intent emailIntent1 = new Intent( Android.content.Intent.ACTION_SEND);
emailIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
emailIntent1.putExtra(Intent.EXTRA_STREAM, bmpUri);
emailIntent1.setType("image/png");
Où bitmap est votre objet bitmap qui doit être stocké dans la carte SD. puis utiliser cette URI pour actionnaire.
Vous devez d'abord enregistrer le bitmap dans un fichier. Vous pouvez l'enregistrer dans le cache de l'application
private void shareBitmap (Bitmap bitmap,String fileName) {
try {
File file = new File(getContext().getCacheDir(), fileName + ".png");
FileOutputStream fOut = new FileOutputStream(file);
bitmap.compress(CompressFormat.PNG, 100, fOut);
fOut.flush();
fOut.close();
file.setReadable(true, false);
final Intent intent = new Intent( Android.content.Intent.ACTION_SEND);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
intent.setType("image/png");
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
Essayez cela, cela peut vous aider:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
yourbitmapimagename.compress(CompressFormat.PNG, 0, bos);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_STREAM, bos.toByteArray());
startActivity(intent);