2011-11-22 106 views
0

我目前正尝试从我的应用程序中拍摄并发送照片。我用不同的方式搞砸了,但是我可以选择在拍照之前如何发送电子邮件,或者根本没有。我需要发送图片然后选择消息客户端。任何帮助?在Android应用程序中拍摄并发送照片

public class PhotoHandler extends Activity { 

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

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (!taken) { 
    downloadedPic = takeandReturn(this, taken); 

    if (taken){ 
    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(); 
    } 
    } 
    } 

} 

private File getTempFile(Context context){ 
//it will return /sdcard/image.tmp 
final File path = new File(Environment.getExternalStorageDirectory(), context.getPackageName()); 
if(!path.exists()){ 
    path.mkdir(); 
} 
return new File(path, "image.jpg"); 
} 

private File takeandReturn(Context context, boolean b) { 
final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(getTempFile(this))); 
startActivityForResult(intent, TAKE_PHOTO_CODE); 

final File path = new File(Environment.getExternalStorageDirectory(), context.getPackageName()); 
if(!path.exists()){ 
    path.mkdir(); 
} 

b=true; 
return new File(path, "image.jpg"); 
}  
} 

回答

相关问题