2010-12-02 12 views
4

アンドロイドで電子メールクライアントを呼び出すことによって電子メールを送信した後、開始アクティビティに戻りたいとします。しかし、それは全く働いていません。 私は以下のコードを試しました。アンドロイドで電子メールを送信した後、活動を開始に戻す

try { 
      path = android.provider.MediaStore.Images.Media.insertImage(
       getContentResolver(), returnedBitmap, "diploma.png", null); 
      Uri diplomaUri = Uri.parse(path);   
      //send email with the above generated image as attachment 
      final Intent emailIntent2 = 
       new Intent(android.content.Intent.ACTION_SEND); 
      emailIntent2.putExtra(Intent.EXTRA_SUBJECT, 
           "Potty Diploma for Teddy"); 
      emailIntent2.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("")); 
      emailIntent2.putExtra(Intent.EXTRA_STREAM, diplomaUri); 
      emailIntent2.setType("image/png"); 
      startActivityForResult(Intent.createChooser(emailIntent2, "Email:"), 
           EMAIL_SUCCESS); 
     } catch(Exception e) { 
      final AlertDialog.Builder builder = 
       new AlertDialog.Builder(v.getContext()); 
     builder.setTitle("Device Media Access"); 
     builder.setMessage("Failed to access media store of the device"); 
     builder.setCancelable(false); 
     builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
     dialog.cancel(); 
     } 
     }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
     } 


@Override 
    public void onActivityResult(int reqCode, int resultCode, Intent data){ 
    super.onActivityResult(reqCode, resultCode, data); 
     switch(reqCode){ 
      case (EMAIL_SUCCESS): 
      if (resultCode == RESULT_OK){ 
      Intent myIntent = new Intent(Progress.this, iGoPotty.class); 
     myIntent.putExtra("tab_id", 2); 
     startActivity(myIntent); 
      } 
     } 
    } 
+0

@ user525004:「アンドロイドで電子メールクライアントを呼び出すことでメールを送信した後、最初のアクティビティに戻りたい」 - これはどういう意味だと思いますか? – CommonsWare

+0

電子メールを送信した後、コントロールがホーム画面に移動します。ユーザーが自分のアプリケーションとやり取りを続けられるように、アプリケーションに戻ってきます。 –

答えて

0

最初のアクティビティに戻るための新しいインテントを作成しようとしているようですが、なぜsetResult()finish()onActivityResult()にありますか?私は実際にあなたが何をしようとしているのか、あなたの一部についてより多くのコードや情報を表示することなく、見ることができません。私はsetResult()finish()とあなたの電子メール活動の中で正しく呼んでいると仮定しています。これはonActivityResult()にここで「捕らえられて」いるのですか? 1つは、ブレークポイントを設定して何か結果が得られているかどうかを確認してください。もしそうなら、発砲とは何ですか?すべてが発砲している場合は、myIntent != null、有効範囲の問題がありますか?

+0

こんにちは、私はそれに打たれたmail.Iを送信した後に活動に戻るためのサンプルコードがありますか? – Deepak

0

はバックの電子メールクライアントから結果を取得する(下記参照)フラグを追加してください:

intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT)。

このようにして、あなたの活動に戻ります。

関連する問題