拍照后,Android 的相机不会返回我的应用程序

标签 android camera

它甚至不能在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/

相关文章:

java - 为什么有时我们必须在 Android 中调用 super ?

java - Canvas 如何确定其裁剪范围?

android - 绘制镜像的qlabel

android - 通过 Android 模拟器进行摄像头

java - 使用相机进行光传感器仿真

image - 色度信号是否向 YUV 中的亮度添加任何信息?

android - 如何为 android 21 api 及更高版本创建资源文件夹?

android - 如何以编程方式创建 admob 横幅?

java - 通过 Intent 拍摄多张照片

javascript - ThreeJS raycaster 关闭,相机和对象的坐标大于 1000000