2011-12-17 30 views
4

它甚至無法在SD卡上創建文件夾。當相機拍攝照片時,按下'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 
     } 
    } 
} 

編輯: 看看這個鏈接 http://achorniy.wordpress.com/2010/04/26/howto-launch-android-camera-using-intents/

相關問題