2

こんにちは私はカメラを使用して写真を撮り、それを電子メールの添付ファイルとして送信するAndroidアプリを作成しました。

それはhtc電話ではうまく機能しますが、私のメールに空の添付ファイルを送信するだけのサムスンギャラクシーでは機能しません。

誰かがこれを修正する方法の提案がありますか?

私のコード:

    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

私の抽出コードを見てください、私は私のサムスンギャラクシーS2で同じ問題を抱えていました:

  1. 私はサムスンギャラクシーS2を使用していますが、添付写真をメールクライアントに配置できなかったため、サムスン専用のチュートリアルを作成した別の人からコードをコピーしました。

  2. サムスンが持っているデフォルトのメールクライアントを介してメールを送信することを選択すると、アプリがクラッシュしますが、Gmailメールクライアントから送信すると機能します。

私のコードはここにあります:Androidは写真を撮り、それをメールの添付ファイルとして送信します。回転時にimageviewがリセットされます

onActivityResultメソッド内で、カメラのリクエストコードを確認し、撮影した写真をimageviewにロードします。その後、添付ファイルとして簡単に配置できます(これはメソッドemail()で行います)。

于 2014-02-04T08:36:58.787 に答える