Возьмите и отправьте фотографию в приложении для Android - PullRequest
0 голосов
/ 22 ноября 2011

Я сейчас пытаюсь взять и отправить фотографию из моего приложения.Я возился с разными способами, но я либо получаю варианты того, как отправить электронное письмо, прежде чем сделать снимок, либо нет вообще.Мне нужно отправить картинку, а затем выбрать клиент обмена сообщениями.Любая помощь?

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");
}       
}

1 Ответ

2 голосов
/ 22 ноября 2011
...