它甚至不能在sdcard 上创建文件夹。当相机拍照时,当我按下“OK”按钮时它没有反应。我的代码有什么问题?
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;
}
}
最佳答案
你有吗?您需要覆盖 onActivityResult。当您使用 startActivityForResult 时,它将在 onResume 之前调用。 requestCode 将是您用来开始拍照 Activity 的代码。在您的情况下,它将是 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/
关于拍照后,Android 的相机不会返回我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8545457/