1

Android で Camera インテントを使用すると問題が発生します。写真を撮り、後でその写真を使用できるようにしたい (URI を取得する)。コードは次のとおりです。

newPicBut.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {
            PhotoChoiceActivity.this.launchCameraIntent();
        }

    });

public void launchCameraIntent()
{
    //create camera intent              
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    //set fileUri
    MediaManager manager = new MediaManager();
    manager.setPictureName(currentItemToAdd.toString());
    intent.putExtra(MediaStore.EXTRA_OUTPUT, manager.getOutputMediaFileUri());      
    startActivityForResult(intent, 100);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if(requestCode == 100){
        if(resultCode == RESULT_OK){
            Toast.makeText(getApplicationContext(), "Image saved to: " + data.getData(), Toast.LENGTH_LONG).show();
        }
    }
}

したがって、基本的にボタンは launchCameraIntent() メソッドを呼び出します。MediaManager がファイルを作成し、intent.putExtra でファイル URI を使用して、ファイルを保存する場所を示します。Camera インテントが呼び出されますが、ここに問題があります。 onActivityResult() は、カメラ インテントをキャンセルしたときにのみトリガーされます。そのため、撮影した写真を受け入れても、まったくトリガーされません。

あなたが助けてくれることを願っています!

4

0 に答える 0