当前位置: 首页 > 知识库问答 >
问题:

在android中打开摄像头的问题

窦凯定
2023-03-14
private void takePhotoFromCamera()
{
    AnimateImageButton();
    boolean result = Utility.checkPermission(MainActivity.this);
    if (result) {
        try {
            _isOpenGallery = false;

            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
            timeStamp = new SimpleDateFormat("ddMMyyyy_HHmm").format(new Date());
            File file = new File(Environment.getExternalStorageDirectory() + File.separator + timeStamp + "image.jpg");
            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
            startActivityForResult(intent, REQUEST_CAMERA);
            System.out.println("Hello >>>>>>>> : " + file.getAbsolutePath());
        }catch (Exception e)
        {

            Log.d("logforcamera",e.getMessage());
        }
    }
}

活动结果代码

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    File file = new File(Environment.getExternalStorageDirectory() + File.separator + timeStamp + "image.jpg");
    System.out.println("Helllloooo >>>>>>>>>>> : " + file.getAbsolutePath());
    Bitmap bitmap = decodeSampledBitmapFromFile(file.getAbsolutePath(), widthX, heightY);
    System.out.println("Bitmap : " + bitmap);
    if (bitmap != null)
    {
        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
        showSelectedImage(bitmap);
    }

共有1个答案

任繁
2023-03-14

试试看,这不是造成问题的意图,一旦你拍了照片并保存到sd卡,拿回牛轧糖的uri是不同的....

在应用程序上实现FileProvider相当容易。首先,您需要在AndroidManifest.xml中的标记下面添加一个FileProvider标记:AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    <application
        ...
        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
        </provider>
    </application>
</manifest>

然后在res文件夹下的xml文件夹中创建provider_paths.xml文件。如果文件夹不存在,则可能需要创建该文件夹。

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="."/>
</paths>
Uri photoURI = Uri.fromFile(createImageFile());
ri photoURI = FileProvider.getUriForFile(MainActivity.this,
            BuildConfig.APPLICATION_ID + ".provider",
            createImageFile());
 类似资料:
  • 我创建了xamarin表单,它可以从相机中拍摄照片,但当我单击相机打开按钮时,它不会打开相机。我的代码在这里“https://github.com/Malith1994124/Kiosk/blob/master/Kiosk_V2/Kiosk_V2/Helpers/Utilities.cs“我在android部分中提供了所有必需的权限。 谁能帮帮我吗。我是xamarin的新手,现在在这里呆了一个多星

  • 我想制作一个只需打开前置摄像头的应用程序,如何使用?

  • 我是新的Android 6.0代码,请提供以下代码的解决方案: 注意:适用于打开库时

  • 本文向大家介绍Linux下利用Opencv打开笔记本摄像头问题,包括了Linux下利用Opencv打开笔记本摄像头问题的使用技巧和注意事项,需要的朋友参考一下 新建test文件夹,文件夹存在test.cpp和CMakeLists.txttest.cpp#include <iostream> CMakeLists.txt 编译过程: 总结 以上所述是小编给大家介绍的Linux下利用Opencv打开笔

  • 表情测试 图片转文字 相框 拍摄图片

  • 摄像头用于采集图像和影像信息,通过模块间的组合完成各种创意活动。 净重量:8.1g 体积:24×24×22mm 参数 分辨率:1280×720 像素大小:3.4um×3.4um 最大图像传输速率:全尺寸 @ 30fps 视场角:100° 镜片结构:4G+IR 焦比:2.97 有效焦距:2.4mm 功耗:100uA(待机)~240mW(工作) 电源:USB总线电源 抗跌落能力:1m 工作温度:-30