私はこれに3日間いましたが、まだ運がありません。写真を撮り、トリミングしてから、Androidのインテント経由でメールを送信しようとしています。
これまでのところ、写真を撮ってトリミングすることができます。ただし、メール部分の部分を設定しようとすると、写真を撮るとすぐにメールの意図がポップアップし、トリミングできなくなります。(Gmailをクリックすると、トリミングがバックグラウンドで実行されます)。
これまでに試しました:
@Override
public void onPictureTaken(byte[] arg0, Camera arg1) {
//Bitmap bitmapPicture = BitmapFactory.decodeByteArray(arg0, 0, arg0.length);
OutputStream imageFileOS;
try {
imageFileOS = getContentResolver().openOutputStream(uriTarget);
imageFileOS.write(arg0);
imageFileOS.flush();
imageFileOS.close();
Toast.makeText(DigitalSignature.this,
"Image saved: " + uriTarget.toString(),
Toast.LENGTH_LONG).show();
String[] recipients = new String[]{"digital.signature@lads.jetdelivery.com", "",};
Intent intent = new Intent("com.android.camera.action.CROP");
// this will open all images in the Galery
intent.setDataAndType(uriTarget, "image/jpeg");
intent.putExtra("crop", "true");
// this defines the aspect ration
intent.putExtra("aspectX", 20);
intent.putExtra("aspectY", 0);
// this defines the output bitmap size
//intent.putExtra("outputX", 256);
//intent.putExtra("outputY", 256);
// true to return a Bitmap, false to directly save the cropped iamge
intent.putExtra("return-data", false);
//save output image in uri
intent.putExtra(MediaStore.EXTRA_OUTPUT, uriTarget);
startActivity(intent);
Intent intent2 = new Intent(Intent.ACTION_SEND);
intent2.setType("image/jpeg");
intent2.putExtra(Intent.EXTRA_EMAIL, recipients);
intent2.putExtra(Intent.EXTRA_SUBJECT, job);
intent.putExtra(Intent.EXTRA_STREAM, uriTarget.getPath()); // Attaches image to Gmail
//File shareImg = new File(uriTarget);
//intent.putExtra(Intent.EXTRA_STREAM, uriTarget.fromFile(shareImg));
try {
startActivity(intent2);
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(DigitalSignature.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
誰かが私を正しい方向に導くのを手伝ってくれるでしょうか?
ありがとう、ジョン。