android - 在 Android 中拍照后未调用 onActivityResult

标签 android android-camera android-sdcard

我正在使用这段代码,但我的 onActivityResult 从未被调用。我过去常常在不传递将图像保存到 SD 卡的额外 Intent 的情况下发出请求,并且工作正常 - onActivityResult() 会像我期望的那样被调用。但由于我添加了 SD 卡代码 - 运气不好!

我是否添加(或遗漏)了某些内容?我在关注 https://stackoverflow.com/a/12277455/2884981举个例子。

这是我的代码,

    static final int CAPTURE_IMAGE_CALLBACK = 1;

    private void dispatchTakePictureIntent() 
    {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    File photo = null;
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());

        if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
        {
            photo = new File(android.os.Environment.getExternalStorageDirectory(), "myapp/images/" + File.separator + timeStamp + ".png");
        } 
        else 
        {   
            photo = new File(getCacheDir(), "myapp/images/" + File.separator + timeStamp + ".png");
        }  
        if ( photo != null)
        {
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
        }

        if (takePictureIntent.resolveActivity(getPackageManager()) != null) 
        {
            startActivityForResult(takePictureIntent, CAPTURE_IMAGE_CALLBACK);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
        // This never gets hit!
        if (requestCode == CAPTURE_IMAGE_CALLBACK) 
        {
              // etc

我只是想在单击勾号后在相机应用程序中添加 - 没有任何反应。我反复点击勾号,它就停留在相机屏幕上。控制永远不会返回到主应用程序。

最佳答案

我需要添加这个:

    photo.getParentFile().mkdirs();
    photo.createNewFile();

我认为它失败的原因是因为我试图将图像写入的文件不存在。

关于android - 在 Android 中拍照后未调用 onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21421419/

相关文章:

android - Android中的自定义 Activity 过渡动画

android - 除了在 list 中设置 SCHEDULE_EXACT_ALARM 权限外,应用程序不会显示在警报和提醒中

android - 即使匹配视频大小和预览大小纵横比,MediaRecorder 也会失败

xamarin - 相机预览和 OCR

audio - 如何在媒体播放器中播放音频文件

android - 在 Android 中使用 libusb 捕获音频

java - 如果常量会阻止使用字符串参数,优化器是否会阻止创建字符串参数?

android - 使用 OpenGL 的视频帧旋转

android - 对 Android 的 'preferExternal' list 过滤器感到困惑

java - 在 Android 设备上访问 SD 卡上的 PDF 文件