在android上向gallery中添加图像

6ioyuze2  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(185)

我正在创建一个应用程序,启动一个意图,打开系统相机并拍摄一张照片,将其保存到图片目录中。
我是这样做的

private void captureImage(){

        Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

        String relativeLocation = Environment.DIRECTORY_PICTURES + File.separator + "MyApp";

        ContentValues contentValues = new ContentValues();
        contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
        contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, relativeLocation);

        photoUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);

        captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
        startActivityForResult(captureIntent, REQUEST_CAPTURE_CODE);
    }

以上代码在运行android10的设备上运行良好。如果它在运行任何低于android 10(api 29)版本的设备上运行,则getcontentresolver().insert()返回null。
仔细观察,我发现它失败了,错误是“relative\ u path”列不存在。这是因为mediastore.mediacolumns.relative\ u path是在api级别29中添加的吗?如果是这样的话,如何在运行androidpie和androidoreo等旧版本的老设备上做到这一点?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题