2

您好,我已经构建了一个 Android 应用程序,它使用相机拍照,然后将其作为电子邮件附件发送。

它在 htc 手机上运行良好,但在三星 Galaxy 上无法运行,它只向我的邮件发送一个空附件。

有人建议如何解决这个问题吗?

我的代码:

    private final static int TAKE_PHOTO_CODE = 1;
File downloadedPic = null;
Intent in;
boolean taken = false;

//NEW
private static int TAKE_PICTURE = 1;
private Uri outputFileUri;


    private void TakePhoto() {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File file = new File(  
            Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "fotowedstrijd.jpeg");
    outputFileUri = Uri.fromFile(file);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
    startActivityForResult(intent, TAKE_PICTURE);
}

private void sendPhoto(){
Intent picMessageIntent = new Intent(Intent.ACTION_SEND);
picMessageIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"info@wemait.nl"}); //fotowedstrijd@openbedrijvendagemmen.nl
picMessageIntent.putExtra(Intent.EXTRA_SUBJECT, "Fotowedstrijd inzending Openbedrijvendag Emmen");
picMessageIntent.putExtra(Intent.EXTRA_TEXT   , "Mijn inzending voor de fotowedstrijd");
picMessageIntent.setType("image/jpeg");  
File downloadedPic =  new File(  
    Environment.getExternalStoragePublicDirectory(  
    Environment.DIRECTORY_PICTURES),  
    "fotowedstrijd.jpeg");  
picMessageIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(downloadedPic));  
startActivity(picMessageIntent); 
//startActivity(Intent.createChooser(picMessageIntent, "Send your picture using:"));
}
4

2 回答 2

1

我发现了什么: Android ACTION_IMAGE_CAPTURE Intent

它说的是 MediaStore.ACTION_IMAGE_CAPTURE 可能存在错误。

我想到了别的东西:也许您的三星手机上不存在该目录,因此您必须先创建它。

只是一些初步的猜测。

于 2012-10-22T11:26:00.937 回答
1

请看一下我的提取代码,我曾经在我的三星 Galaxy S2 上遇到过同样的问题,例如:

  1. 我使用的是三星 Galaxy S2,我无法将附件照片放在电子邮件客户端上,所以我从另一个专门为三星制作教程的人那里复制了代码,它可以工作。

  2. 当我选择通过三星拥有的默认电子邮件客户端发送电子邮件时,该应用程序崩溃,但当我从 gmail 电子邮件客户端发送它时它可以工作。

我的代码在这里:Android 拍照并将其作为电子邮件的附件发送,图像视图在旋转时重置

在 onActivityResult 方法中,我检查相机的请求代码,然后在 imageview 上加载我拍摄的照片,之后很容易将其作为附件放入(我在方法 email() 上执行此操作)。

于 2014-02-04T08:36:58.787 回答