2011-12-17 12 views
4

これはsdcard上にフォルダを作ることさえできません。カメラが写真を撮ると、「OK」ボタンを押しても反応しません。私のコードに何が問題なのですか?写真を撮ったときにAndroidのカメラが私のアプリに戻ってこない

public static final String MACCHA_PATH = Environment.getExternalStorageDirectory().getPath() + "/Twigit"; 
public static final String PHOTO_PATH = MACCHA_PATH + "/camera.jpg"; 

public static boolean takePhoto(Activity activity) { 
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    File fileDir = new File(MACCHA_PATH); 
    boolean isSuccessful = true; 
    if (!fileDir.exists()) { 
     isSuccessful = fileDir.mkdir(); 
    } 
    if(!isSuccessful) { 
     return false; 
    } else { 
     File file = new File(PHOTO_PATH); 
     Uri outputFileUri = Uri.fromFile(file); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
     activity.startActivityForResult(intent, TAKEPHOTO); 
     return true; 
    } 
} 

答えて

2

これはありますか? onActivityResultをオーバーライドする必要があります。 startActivityForResultを使用すると、onResumeの前に呼び出されます。 requestCodeは、写真撮影活動を開始するために使用したコードです。あなたのケースでは、TAKEPHOTOだろう。..

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == TAKEPHOTO) { 
     if (resultCode == RESULT_OK) { 
      //Pic taken 
     } else { 
      //Pic not taken 
     } 
    } 
} 

はEDIT: このリンク http://achorniy.wordpress.com/2010/04/26/howto-launch-android-camera-using-intents/

を見てみましょう
関連する問題