package com.example.android.recipe096; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.widget.EditText; public class Recipe096 extends Activity { private EditText mEditText; private Uri mPictureUri; private static final int CODE_GALLERY = 1; private static final int CODE_CAMERA = 2; private static final int CODE_RECORDER = 3; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mEditText = (EditText) findViewById(R.id.text); } // Memoボタンが押されたら呼び出されます。 public void onMemoButtonClick(View view) { // 入力された文字列をセットして // Evernoteアプリを呼び出します。 Intent intent = new Intent(); intent.setClassName("com.evernote", "com.evernote.ui.ShareWithEvernoteActivity"); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, mEditText.getText().toString()); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } // Photoボタンが押されたら呼び出されます。 public void onPhotoButtonClick(View view) { // ギャラリーを呼び出します。 Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(intent, CODE_GALLERY); } // Cameraボタンが押されたら呼び出されます。 public void onCameraButtonClick(View view) { // 標準のカメラアプリを呼び出します。 String filename = "Recipe_" + System.currentTimeMillis() + ".jpg"; ContentValues values = new ContentValues(); values.put(MediaStore.Images.Media.TITLE, filename); values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); mPictureUri = getContentResolver().insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); Intent intent = new Intent(); intent.setAction("android.media.action.IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT, mPictureUri); startActivityForResult(intent, CODE_CAMERA); } // Audioボタンが押されたら呼び出されます。 public void onAudioButtonClick(View view) { // ボイスレコーダーを呼び出します。 Intent intent = new Intent(); intent.setAction(MediaStore.Audio.Media.RECORD_SOUND_ACTION); startActivityForResult(intent, CODE_RECORDER); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { // RESULT_OKじゃない場合は何もしない if (resultCode != RESULT_OK) return; // ギャラリー呼び出しの結果 if (requestCode == CODE_GALLERY) { // 選択された写真のUriを取得 Uri uri = data.getData(); // Evernoteへ startEvernote("image/*", uri); // カメラの結果 } else if (requestCode == CODE_CAMERA) { // 撮影した写真のUriをEvernoteへ startEvernote("image/jpeg", mPictureUri); // ボイスレコーダーの結果 } else if (requestCode == CODE_RECORDER) { // 録音した音声ファイルのUriをEvernoteへ Uri uri = data.getData(); startEvernote("audio/*", uri); } } // 指定されたMIMEタイプ、Uriを使ってEvernote公式アプリを呼び出します。 private void startEvernote(String type, Uri uri) { Intent intent = new Intent(); intent.setClassName("com.evernote", "com.evernote.ui.ShareWithEvernoteActivity"); intent.setType(type); intent.putExtra(Intent.EXTRA_STREAM, uri); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } }