1

私のAndroidアプリには、ギャラリーまたはカメラでキャプチャされた画像から画像を選択する「imageselect」モジュールと、それを処理して表示する「app」モジュールがあります。私が行った別のリクエストコードについて

public static final int REQUEST_CODE_PHOTO = 2000;
public static final int REQUEST_CODE_CAMERA = 2006;

imageselectモジュールアクティビティでリクエストコードと結果コードを完全に取得しています

アクティビティを開始 両方のオプションの結果

//to choose gallery image 
Intent intent = new Intent(getApplicationContext(), ImageSelectActivity.class);
intent.putExtra(Constants.INTENT_EXTRA_ALBUM, albums.get(position).name);
startActivityForResult(intent, Constants.REQUEST_CODE_PHOTO); 


// to capture camera image     
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, Constants.REQUEST_CODE_CAMERA);

OnActivity の結果:

if(requestCode == Constants.REQUEST_CODE_PHOTO && resultCode == RESULT_OK && data != null) {
        setResult(RESULT_OK, data);
        finish();
        Toast.makeText(AlbumSelectActivity.this,"Calling ALbum IF",Toast.LENGTH_SHORT).show();
    }else if(requestCode == Constants.REQUEST_CODE_CAMERA && resultCode == RESULT_OK && data != null){
        setResult(RESULT_OK, data);
        finish();
        Toast.makeText(AlbumSelectActivity.this,"Calling ALbum ELSE IF",Toast.LENGTH_SHORT).show();
    }

これまでは正常に動作しています。私のアプリモジュールアクティビティでは、常に同じリクエストコードを取得しています。写真のリクエストコードである2000を常に取得しています。

アプリ モジュール MainActivity onActivityResult:

if (resultCode == RESULT_OK) {
        if (requestCode == Constants.REQUEST_CODE_PHOTO && data != null) {
           // always getting 'REQUEST_CODE_PHOTO' so this block is working 

        } else if (requestCode == Constants.REQUEST_CODE_CAMERA && data != null) {
            // this block never called even when 'REQUEST_CODE_CAMERA' passed 
        }
    }
4

1 に答える 1