Приложение для Android Take/ Email Photo
В настоящее время я пишу приложение, в рамках которого мы хотим, чтобы пользователь мог сделать фотографию и отправить ее по электронной почте на нужный адрес электронной почты. Я могу сделать оба из них (сфотографировать и отправить фотографию) отдельно, НО, когда я запускаю их вместе, список почтовых клиентов появляется по камере... Кажется, я не могу понять, почему он не работает после самой камеры.. Любая помощь?
*** Вот что у меня сейчас:
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();
}
}
1 ответ
Решение
Вы должны использовать 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();
}
}
Надеюсь, это поможет.