首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Android上的MediaStore将数据从Camera保存到磁盘?

要在Android上使用MediaStore将数据从Camera保存到磁盘,您需要遵循以下步骤:

  1. 首先,在AndroidManifest.xml文件中添加必要的权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" />
  2. 在您的Activity或Fragment中,检查并请求必要的权限:private static final int REQUEST_IMAGE_CAPTURE = 1; private static final int REQUEST_STORAGE_PERMISSION = 2; private void dispatchTakePictureIntent() { Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (takePictureIntent.resolveActivity(getPackageManager()) != null) { startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == REQUEST_STORAGE_PERMISSION) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { dispatchTakePictureIntent(); } } } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); // 使用imageBitmap进行后续操作 } }
  3. 在onActivityResult方法中,您可以获取到拍摄的照片的Bitmap。您可以使用这个Bitmap进行后续操作,例如保存到磁盘或显示在ImageView中。
  4. 如果您想将照片保存到磁盘,您可以使用以下代码:private void saveImageToDisk(Bitmap imageBitmap) { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes); String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath() + File.separator + "MyApp"; File dir = new File(path); if (!dir.exists()) { dir.mkdirs(); } String fileName = "IMG_" + System.currentTimeMillis() + ".jpg"; File file = new File(dir, fileName); try { FileOutputStream fo = new FileOutputStream(file); fo.write(bytes.toByteArray()); fo.close(); } catch (IOException e) { e.printStackTrace(); } }

这样,您就可以使用MediaStore将数据从Camera保存到磁盘了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android调用系统照相机拍照与摄像方法

本篇博客介绍在Android应用中,如何调用系统现有的相机应用去拍摄照片与短片,并对其进行处理,最后均会以一个简单Demo来演示效果。...字面意思可以看出,为了捕获系统相机返回数据,一般需要使用一下两个Action即可开启照相机与摄像机: android.media.action.IMAGE_CAPTURE:IntentAction...但是在使用系统现有相机用用时候,默认会把图片保存到系统图库目录下,如果需要指定图片文件保存路径,需要额外在Intent中设置。   ...4、系统现有相机拍摄图片Demo   上面讲解了如何在开发应用中使用系统相机拍摄照片并获得它所涉及到内容,下面通过一个简单Demo演示一下。...调用系统照相机拍照与摄像 总结 到此就把如何使用系统现有相机应用拍摄照片与视频都讲解清楚了,在非相机相关项目中,如果需要拍照的话,一般都是调用系统现有的相机应用,而不会直接调用Camera硬件去获取图像

6.8K21

Android中Image简单实例详解

在多媒体应用中,Image是最基础功能模块,接下来我们看看在Android中是如何获取和存储Image。...已经提供了一个多媒体库,那里统一存放了设备所有的多媒体数据。...* 为了数据存储在多媒体库,使用ContentResolver对象来操纵MediaStore对象 * 在MediaStore.Images.Media中有两个URI常量,一个是 EXTERNAL_CONTENT_URI...//Camera中定义了一个Intent-Filter,其中Action是android.media.action.IMAGE_CAPTURE //我们使用时候,最好不要直接使用这个,而是用MediaStore...返回数据 //由Camera应用返回图片数据是一个Camera对象,存储在一个名为dataextra域 //然后获取到图片存储显示在ImageView中 try { Bundle extra

1.7K10

相机or相册获取图片并显示

这个技术应该算是十分稀松平常了,但是对于小白来说,还是要费一番功夫。因此在这里贴上我代码,也是为了以后用到时候方便找。。。...; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore...data原因是,这里返回data是一个缩略图,十分不清晰 if (requestCode == CAMERA_REQUEST_CODE) {// 保存在本地图片取出并缩小后显示在界面上...bitmap.getHeight() / SCALE); // 由于Bitmap内存占用较大,这里需要回收内存,否则会报out of memory异常 bitmap.recycle(); // 处理过图片显示在界面上...,并保存到本地 ImageView imageView = (ImageView) findViewById(R.id.photo); imageView.setImageBitmap(newBitmap

1.7K70

android之实现打开相册、拍照录像、播放视频、保存图片到系统相册指定位置、图片压缩

Android 7.0后系统禁止应用向外部公开file://URI , * 因此需要FileProvider来向外界传递URI,传递形式是content : //Uri,使用时需要在清单文件中注册。...intentextra部分包含一个编码过Bitmap, // 拍完图片是不会保存到本地, 我们可以自己写代码把图片保存到我们SD卡里,然后再显示,这样图片会清晰很多....bitmap对象保存到系统图库中, 但是这种方法无法指定保存路径和名称, 上述方法title、description参数只是插入数据库中字段, 真实图片名称系统会自动分配。...video /** * 相册中选择视频 */ private void choiceVideo() { Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站立刻删除。

5.2K20

targetSdk27 FileProvider 摄像和照相

= new Intent(MediaStore.ACTION_VIDEO_CAPTURE); // MediaStore.EXTRA_VIDEO_QUALITY 表示录制视频质量,...而 Android N 开始,将不允许在 App 间,使用 file:// 方式,传递一个 File ,否者会抛出 FileUriExposedException错误,会直接引发 Crash。...当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存媒体文件,如audio,video,图片等,将相应信息放到定义好数据库表格中。...在这个程序中,我们不需要关心如何去扫描手机中文件,只要了解如何查询和使用这些信息就可以了。...MediaStore中定义了一系列数据表格,通过ContentResolver提供查询接口,我们可以得到各种需要信息。

86110

Android7.0适配心得

应对策略:这项权限变更将意味着你无法通过File API访问手机存储数据了,基于File API一些文件浏览器等也将受到很大影响,看到这大家是不是惊呆了呢,不过迄今为止,这种限制尚不能完全执行...);//设置Action为拍照 intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);//拍取照片保存到指定URI startActivityForResult..., imageUri);//拍取照片保存到指定URI startActivityForResult(intent,1006); 上述代码中主要有两处改变: 将之前Urischeme类型为file...另外,推荐大家使用开源工具库TakePhoto, TakePhoto是一款在Android设备获取照片(拍照或相册、文件中选择)、裁剪图片、压缩图片开源工具库。...TakePhoto, TakePhoto是一款在Android设备获取照片(拍照或相册、文件中选择)、裁剪图片、压缩图片开源工具库。

1.3K50

如何在Ubuntu 14.04使用Transporter转换后数据MongoDB同步到Elasticsearch

介绍 Elasticsearch有助于对数据进行全文搜索,而MongoDB则擅长存储数据使用MongoDB存储数据使用Elasticsearch进行搜索是一种常见体系结构。...本教程向您展示如何使用开源实用程序Transporter通过自定义转换数据MongoDB快速复制到Elasticsearch。...目标 在本文中,我们介绍如何使用Transporter实用程序数据MongoDB复制到Ubuntu 14.04Elasticsearch 。...如果你还记得,我们用firstName和lastName存储了MongoDB中两条记录。在数据MongoDB同步到Elasticsearch时,您可以在这里看到转换数据真正力量。...结论 现在我们知道如何使用Transporter数据MongoDB复制到Elasticsearch,以及如何在同步时转换应用于我们数据。您可以以相同方式应用更复杂转换。

5.4K01

一篇文章带你了解Google CameraX

第二:使用Jetpack,方便我们在不同android设备和不同android版本适配,简单说,就是适配性强。...三、 CameraX基本框架介绍 从下图我们可以看到,CameraX是基于Camera2API进行封装。 Camera API1,Google已经声明在Android5.0之后设备废弃了。...它用于执行用户提供 OnImageCapturedCallback()。 如果调用方选择图片保存到文件位置,您可以指定执行程序以执行 IO。...如需查看有关如何 Media.Image 对象 YUV_420_888 格式转换为 RGB Bitmap对象示例代码,请参阅 YuvToRgbConverter.kt。...4)CameraX 视频捕获架构 捕获系统通常会录制视频流和音频流,对其进行压缩,对这两个流进行多路复用,然后生成流写入磁盘。 图 1. 视频和音频捕获系统概念图。

3.4K31

Android平台相机接口应用

第一部分、前述: Android作为Google移动互联网战略重要组成部分,进一步推进“随时随地为每个人提供信息”这一企业目标的实现。Google目标是让移动通信不依赖于设备,甚至是平台。...出于这个目的,Android完善而不是替代Google长期以来推行移动发展战略:通过与全球各地手机制造商和移动运营商成为合作伙伴,开发既实用又有吸引力移动服务,并推广这些产品。...“开放手机联盟”表示,Android平台可以促使移动设备创新,让用户体验到最优质移动服务 第二部分、体系结构: 1、Android camera架构 Android Camera框架整体看一个cl...Camera做个简单使用小结。...(intent); 备注:上面设置MediaStore.EXTRA_OUTPUT方法,经过手机实测除了我们设定路径下有照片外,在手机存储卡也会保存一份照片,默认目录为sdcard/dcim/camera

1.5K50

009android初级篇之APP中使用系统相机相册等集成应用

009android初级篇之APP中使用系统相机相册等集成应用 android应用中使用相机功能,大致有两种方式实现: 直接调用系统内部相机程序,显示也是系统预设界面(简单,只有简单拍照功能);...} } } 第二种方式:自定制camera 参考链接, 该功能我未实现 Android 自定义camera 同样方法可以调用系统相册 private static final...Intent.ACTION_GET_CONTENT String: android.intent.action.GET_CONTENT 允许用户选择特殊种类数据,并返回(特殊种类数据:照一张相片或录一段音...,eclipse运行是报错,桌面也不会有图标。...action操作有很多,需要的话,继续百度。 参考链接 Android 如何系统图库中选择图片

63340

Android 自定义相机及分析源码

(intent, REQ_1); //然后在 onActivityResult方法中实现数据获取,此处是展示在了一个ImageView if(resultCode==RESULT_OK){...在系统onPause(),onResume()方法中进行相关状态设置 对Camera进行参数设置,作用就是对照片类型和状态进行相关设置 拍得照片进行展示,一般会新开一个Activity,用ImageView...,调用myCamera.autoFocus(null);方法即可 以上就是整个思路 接下来就是使用系统Camera代码展示 (可以直接copy相关代码块,添加到你应用中去,实现Camera这一功能。...onPictureTaken(byte[] data, Camera arg1) { //拍照得到数据信息存储到本地 File tempFile=new File("/sdcard/temp.png..."); try { FileOutputStream fos=new FileOutputStream(tempFile); fos.write(data); fos.close(); //然后这个照片数据信息传送给要进行展示

60030

Android Q 适配 之 存储新特性

而作为开发者,我们更关心如何解决在我们现有的 App ,保证 Android Q 兼容性问题。...问题分析:在 Android Q ,卸载 APP 默认删除 App-specific 目录下数据。 解决方案:APP 应该想要保留文件通过 MediaStore 接口保存到公共目录下。...2.2.6 无法访问图片文件中地理位置数据 问题原因:直接图片文件输入流中解析地理位置数据。 问题分析:由于图片地理位置信息涉及用户隐私,Android Q 默认不向 APP 提供该数据。...这些 APP 如果直接通过路径方式文件保存到了外部存储,例如外部存储根目录,那么 APP 被卸载后重新安装,新 APP 获得 Filtered View 视图,无法直接通过路径访问到旧数据,导致数据丢失...解决方案:APP 应该修改保存文件方式,不再使用路径方式直接保存,而是采用 MediaStore 接口文件保存到对应公共目录下。

99630

Android音视频之视频采集(系统API预览)

首先第一个反应打开Google搜索和Android视频采集相关东西,我们要知道如何通过API来采集,不由自主地到了Android官网Camera API。...Android有两个视频采集API,CameraAndroid 5.0以前使用,现在已经废弃了,我们还是得学一下他使用Camera2是最新视频采集API,我们重点了解它使用。...这篇文章我们掌握调用系统拍照和录制视频API来实现拍照录像功能。 Camera 它是API21(Android5.0)以前用来对摄像头数据采集API,我们开始到每个环节关键内容记录如下。...基础知识 先来了解使用Camera有几个相关联类。...下面的代码可以让系统多媒体扫描器添加我们图片到Media Provider’s 数据库,让我们图片对系统相册和其他应用都可以使用

1.4K10

Android 项目实战之头像选择功能

1.2 功能实现 1.2.1 Intent工具类封装 封装图片选择和图片裁剪工具类 /** * 选择图片(相册或相机) * @param uri 相机存储uri * @return...getImageCropIntent(Uri inputUri, Uri outputUri, int width, int height) { Intent intent = new Intent("com.android.camera.action.CROP...path="Android/data/com/example/sunmoon/images" name="camera_has_sdcard"/ <files-path path="<em>Android</em>.../data/com/example/sunmoon/other" name="<em>camera</em>_no_sdcard"/ <external-path path="<em>Android</em>/data/com/example...总结 以上所述是小编给大家介绍<em>的</em><em>Android</em> 项目实战之头像选择功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家<em>的</em>。在此也非常感谢大家对ZaLou.Cn网站<em>的</em>支持!

1.1K31

Android打开系统拍照&相册获取头像

Android打开系统拍照&相册获取头像 现在许多应用都有上传头像功能,再次奉上代开系统相册或打开系统相机拍照实现,有的同学在测试小米手机上打开选择相册有奔溃,此代码已完美解决此问题… 楼主,做头像需要经过裁剪之后和圆形处理...= new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(camera, CAMERA...= null) { // 拍照 Bundle bundle = data.getExtras(); // 获取相机返回数据,并转换为图片格式...返回是content://com.android.providers.media.documents/document/image:3951或者 //总结:uri组成,eg:...各个不同系统版本,对于获取外部存储资源,返回Uri对象都可能各不一样,所以要保证无论是哪个系统版本都能正确获取到图片资源的话 //就需要针对各种情况进行一个处理了

2.7K20
领券