私は Intent を使用して Android カメラベースのアプリに取り組んでいます。写真をキャプチャした後、その写真が表示され、「保存」と「キャンセル」の 2 つのボタンが表示されます。私がやりたいことは、ユーザーがこれら 2 つのボタンのいずれかを選択するのを待つのではなく、この写真の処理を開始し、処理の結果に応じてさらにアクションを実行することです。
私はこれまでこのようにしてきました:
CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
protected void startCameraActivity()
{
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
// the method below is my method for setting proper path for my image file
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
startActivityForResult( intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE );
}
このメソッドは、アプリを起動すると呼び出されます。だから私はカメラで私のアプリを起動します。それから私は写真を撮ります。そして、「保存」または「キャンセル」を選択できます。1 つを選択すると、このメソッドが呼び出されます。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// Image captured and saved to fileUri specified in the Intent
onPhotoTaken(); // processing...
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}
}
適切なresultCodeを受け取った後、その画像をファイルからロードして処理を開始します。
そして今、私の質問は次のとおりです: onActivityResult メソッドが呼び出される前にその画像を取得できますか? これらのボタンのいずれかをクリックすると呼び出されます。
(Google Google と同じようにやりたい - ユーザーが写真をキャプチャすると、その写真はすぐに処理されます)