如何在android中打开摄像头应用程序

如何在android中打开摄像头应用程序,android,android-camera,Android,Android Camera,我正在构建一个应用程序,该应用程序需要一个从安装我的应用程序的设备打开默认相机应用程序的功能;我的问题是如何实现它 在谷歌搜索了一段时间后,我学到了如何从应用程序中打开相机,但我试图实现的是打开默认相机,该相机可以使用相机应用程序的任何功能。你能告诉我如何实现相机吗?你可以打开相机应用程序 Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResu

我正在构建一个应用程序,该应用程序需要一个从安装我的应用程序的设备打开默认相机应用程序的功能;我的问题是如何实现它


在谷歌搜索了一段时间后,我学到了如何从应用程序中打开相机,但我试图实现的是打开默认相机,该相机可以使用相机应用程序的任何功能。你能告诉我如何实现相机吗?

你可以打开相机应用程序

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
现在,在使用完照相机应用程序后,将图像取回

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_PIC_REQUEST) {
          Bitmap image = (Bitmap) data.getExtras().get("data");
          // do whatever you want with the image now
    }
}

希望这会有所帮助。

只需向相机发送
意图
,请求拍照:

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);
    }
}

这里有更多详细信息:

要在android手机中使用内置摄像头应用程序,您需要一些东西 第一:

  • 这个设备必须有摄像头
  • 您的应用程序必须具有拍照权限
  • 您的应用程序必须具有保存图片的权限(如果您 (打算)
为了解决上述问题,您需要在清单文件中添加以下代码,以获得使用照相机拍照的权限,并且如果应用程序的主要功能要求设备配备照相机,则需要添加以下代码

<uses-feature android:name="android.hardware.camera" android:required="true" />
将此添加到按钮或图像按钮,以便单击将调用takePicture方法

最后一步是记住,Android将返回您需要接受的图像或结果数据,并根据上述标识符代码REQUEST_TAKE_PHOTO=123/requestCode。有一种方法需要重写

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            Bundle extras = data.getExtras();
            // Sample data cast to  thumbnail
            Bitmap imageBitmap = (Bitmap) extras.get("data");
            // Do whatever you want with the thumbnail such as setting it to image view
            mImageView.setImageBitmap(imageBitmap);
        }
    }

1。AFAIK每个安卓设备都有摄像头。2.使用intent打开camera应用程序不需要任何权限或功能。@KetanAhir您好,我猜您错过了底部的源链接。1.“每个安卓设备都有摄像头”,这并不完全是真的,安卓是一个操作系统,该操作系统几乎可以用于任何东西,从手机、汽车、电视、电视盒(在线香奈儿)到定制手持订单平板电脑e.t.c让我们假设你确实为安卓手机和平板电脑做了一个构建,但我们还是回到了“不完全正确”的话题有一些特定的设备没有摄像头,但可以访问play store,如上所述,因为简单的谷歌搜索“android手机没有摄像头”会告诉你我的观点。@KetanAhir“使用intent打开摄像头应用程序不需要权限或功能”是真的,因为android会处理这个问题,最初的问题是“打开默认摄像头”回到我的第一点,首先检查摄像机。在构建android应用程序时,这是最好的推荐做法,“如果你的应用程序的主要功能要求设备配备摄像头”,你需要添加此权限,以便Google Play store将你的应用程序安装到实际配备摄像头的设备上。良好的旧Android编程实践:)同意。但当我们使用intent打开默认的摄像头应用程序时,我们不需要许可。同样,若设备中安装了摄像头应用程序,则意味着设备具有摄像头。启动摄像头应用程序时,我们只需要处理ActivityNotFoundException。因此,我们不需要兼顾你的两个观点。
static final int REQUEST_TAKE_PHOTO = 123;

private void takePicture() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            Bundle extras = data.getExtras();
            // Sample data cast to  thumbnail
            Bitmap imageBitmap = (Bitmap) extras.get("data");
            // Do whatever you want with the thumbnail such as setting it to image view
            mImageView.setImageBitmap(imageBitmap);
        }
    }