如何在android中监听相机拍摄的图片

时间:2012-05-04 05:37:26

标签: android android-intent

在我的应用程序中,我只是想在相机中收听用户拍摄的照片并增加照片数。我试着听

<action android:name="android.provider.MediaStore.ACTION_IMAGE_CAPTURE" />
<action android:name="android.media.action.IMAGE_CAPTURE" />
<action android:name="android.media.action.STILL_IMAGE_CAMERA" />
<action android:name="android.intent.action.CAMERA_BUTTON" />

以上意图。但这些意图不适用于星系。是否有其他方法可以收听拍摄的图像。

3 个答案:

答案 0 :(得分:1)

here

线索是以意图作为参数启动活动:

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, TAKE_PICTURE);

捕获活动结果:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case TAKE_PICTURE:
        if (resultCode == Activity.RESULT_OK) {
            // Do something
        }
    }
}

答案 1 :(得分:1)

我认为你应该使用图片回调

                    Camera.PictureCallback picture_callback = new Camera.PictureCallback() {

                        @Override
                        public void onPictureTaken(byte[] data, Camera camera) {
                            // WRITE YOUR CODE WHEN PICTURE TAKEN.
                            // "data" IS YOUR TAKEN PICTURE FRAME. 
                        }
                    };

将picture_callback设置为您的相机,每次拍照时都会进入上述功能。

您可以将图片回调设置为

if you have raw frame
        mCamera.takePicture(null, picture_callback, null);

if you have jpeg frame
        mCamera.takePicture(null, null, picture_callback);

hope it will help you..

如果您想使用默认相机,那么您可以使用它。

相机mCamera = Camera.open();

答案 2 :(得分:0)

我知道,这个帖子很老了,没有答案,但我也在寻找相同的解决方案。并找到了一些有用的提示here on Stackoverflow和一个post by Vogella here

万一有人需要类似的东西......