Android应用程序拍摄/电子邮件照片

Android应用程序拍摄/电子邮件照片,android,email,camera,android-intent,photo,Android,Email,Camera,Android Intent,Photo,我目前正在编写一个应用程序,在特定的活动中,我们希望用户能够拍摄照片并通过电子邮件发送到所需的电子邮件地址。我可以分别做这两件事(拍照和发送照片),但当我把它们一起运行时,电子邮件客户端列表就会出现在相机上。。。我似乎不明白它为什么不跟着摄像机跑。。有什么帮助吗 ***以下是我现在拥有的: public class PhotoHandler extends Activity { private final static int TAKE_PHOTO_CODE = 1; File downloa

我目前正在编写一个应用程序,在特定的活动中,我们希望用户能够拍摄照片并通过电子邮件发送到所需的电子邮件地址。我可以分别做这两件事(拍照和发送照片),但当我把它们一起运行时,电子邮件客户端列表就会出现在相机上。。。我似乎不明白它为什么不跟着摄像机跑。。有什么帮助吗

***以下是我现在拥有的:

public class PhotoHandler extends Activity {

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

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.mnwv_main);

  downloadedPic = takeandReturn(this);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{

  try {            
      Intent picMessageIntent = new Intent(android.content.Intent.ACTION_SEND);            
      picMessageIntent.setType("image/jpeg");
      picMessageIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(downloadedPic));
        picMessageIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{});
      picMessageIntent.putExtra(Intent.EXTRA_SUBJECT, "MNWV - Check Out This Photo!");
        picMessageIntent.putExtra(Intent.EXTRA_TEXT   , "*** Please Describe the Photo Taken Below (Include Your Name, Location, etc.)... ***");
      startActivity(Intent.createChooser(picMessageIntent, "Send Picture Using: ")); 
  } catch (Exception e) {
      Log.e("TAG", "sendPictureMessage() failed to start activity.", e);
      Toast.makeText(this, "No handler", Toast.LENGTH_LONG).show();
  } 
}  

您必须使用startActivityForResult拍照。之后,您必须使用onActivityResult发送电子邮件:

   @Override
   public void onActivityResult(int requestCode, int resultCode, Intent data)
   {
       // TODO: Test for requestCode and resultCode
       try {            
           Intent picMessageIntent = new Intent(android.content.Intent.ACTION_SEND);            
           picMessageIntent.setType("image/jpeg");
           picMessageIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(downloadedPic));
           startActivity(Intent.createChooser(picMessageIntent, "Send Picture Using: "));
       } catch (Exception e) {
           Log.e("TAG", "sendPictureMessage() failed to start activity.", e);
           Toast.makeText(this, "No handler", Toast.LENGTH_LONG).show();
       }
   }

希望能有所帮助。

测试requetcode和resultcode是什么意思?我不明白。很抱歉,我是android developmentrequestCode的新手,当您在活动中必须处理多个对startActivityForResult的调用时,它是有用的:这意味着您必须检查在onActivityResult上收到的请求代码是否与调用startActivityForResult时使用的代码匹配。关于resultCode,您必须检查它是否与RESULT_Cancelled不同。你可以在以下网址了解更多信息:,int,android.content.Intent)好吧,我还有一个问题。我让上面的工作。但是现在它会拍下照片并发送出去,但是之后,你只会得到一个黑屏。在这一点上是否还有其他方法可以将其指向特定的活动?您必须为您的活动设置内容布局:this.setContent(R.layout.mylayout);调用super.onCreate(savedInstanceState)后;我知道这会修复这个黑屏,但有没有一种方式可以在发送电子邮件后说“startActivity”?