【问题标题】:How to detect if photo was taken (camera intent)如何检测照片是否已拍摄(相机意图)
【发布时间】:2015-10-14 18:17:28
【问题描述】:

我想发送一张相机意图拍摄的照片。

  • 相机工作正常
  • 我有来自 mMediaUri.getPath() 的路径(正确)
  • 我有方法发送它(postImage())(工作正常)

当我启动一个 Intent 时,相机会出现,但 postImage 方法不会等到拍摄照片。 PostImage 只是在开始意图后加载。

拍照后如何加载 postImage?

如何判断是否拍照?

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        mMediaUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
        if(mMediaUri == null){
          Toast.makeText(MainActivity.this, "Problem!", Toast.LENGTH_LONG).show();

        }
        else {
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mMediaUri);
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);

            postImage("mail", mMediaUri.getPath());

        }

    }

【问题讨论】:

    标签: android android-intent android-camera android-camera-intent


    【解决方案1】:

    你可以用它来打开相机:

    static final int REQUEST_IMAGE_CAPTURE = 1;
    
    private void dispatchTakePictureIntent() {
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
        }
    }
    

    用于检测捕获(确定或取消按钮)

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            Bundle extras = data.getExtras();
            Bitmap imageBitmap = (Bitmap) extras.get("data");
            mImageView.setImageBitmap(imageBitmap);
        }
    }
    

    不要忘记给予许可:

    <manifest ... >
        <uses-feature android:name="android.hardware.camera"
                      android:required="true" />
        ...
    </manifest>
    

    同时检查这些链接:

    http://developer.android.com/training/camera/photobasics.html https://developer.android.com/training/camera/index.html

    【讨论】:

    • 很好的答案!谢谢!你有什么想法可以去掉这个OK按钮,拍照后返回OK吗?
    • @klijakub 此屏幕(带有确定按钮)可能因操作系统和设备型号而异。例如,您在 Sony XPERIA 手机上看不到此屏幕。如果您不想看到此屏幕,则需要创建自定义相机活动。
    猜你喜欢
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多