iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android无需权限调用系统相机拍照怎么实现
  • 794
分享到

Android无需权限调用系统相机拍照怎么实现

2023-07-05 13:07:50 794人浏览 八月长安
摘要

这篇“Android无需权限调用系统相机拍照怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android无需权限调用

这篇“Android无需权限调用系统相机拍照怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android无需权限调用系统相机拍照怎么实现”文章吧。

正文

在进行一些小型APP的开发,或者是对拍照界面没有自定义要求时,我们可以用调起系统相机的方式快速完成拍照需求

和不需读写权限进行读写操作的方案一样,都是通过Intent启动系统的activity让用户进行操作,系统再将用户操作的结果告诉我们,因为过程对APP是完全透明的,所以不会侵犯用户隐私。

有两种方法可以调起系统相机拍照获取图片,我们先讲比较简单的一种

1、直接获取用户拍照结果

val launcher = reGISterForActivityResult(ActivityResultContracts.TakePicturePreview()) {bitmap->    bitmap ?: return@registerForActivityResult    vm.process(bitmap)}launcher.launch("image/*")

这个在旧版本的api中就等于

startActivityForResult(Intent(MediaStore.ACTioN_IMAGE_CAPTURE),CODE)

等到用户完成拍照,返回我们的activity时,我们就可以得到一张经过压缩的bitmap。这个方法很简单,它的缺点就是获得的bitmap像素太低了,如果对图片像素有要求的话需要使用第二种方法

2、用户拍照之后指定相机将未压缩的图片存放到我们指定的目录

var uri: Uri? = nullval launcher =  registerForActivityResult(ActivityResultContracts.TakePicture()) {      if(it){          uri?.let { it1 -> vm.process(it1) }      }  }val picture = File(externalCacheDir?.path, "picture")picture.mkdirs()uri = FileProvider.getUriForFile(  this,  "${BuildConfig.APPLICATION_ID}.fileprovider",  File(picture, "cache"))launcher.launch(uri)

这里我逐行进行解释:

  • 首先,我们需要指定拍摄的照片要存到哪,所以我们先指定图片的存放路径为externalCacheDir.path/picture/cache 注意这张图片在文件系统中的名字就叫做cache了(没有文件后缀)。

  • 然后我们通过FileProvider构建一个有授权的Uri给系统相机,相机程序拿到我们的临时授权,才有权限将文件存放到APP的私有目录。

  • 系统相机拍照完成之后就会走到回调,如果resultCode为RESULT_OK才说明用户成功拍照并保存图片了。这样我们就能得到一张系统相机拍出来的原图的Uri,这样我们就可以用这张图片去处理业务了。

注意:使用方法二需要用到FileProvider,所以我们还要在AndroidManifest里声明

<provider  android:name="androidx.core.content.FileProvider"  android:authorities="${applicationId}.fileprovider"  android:exported="false"  android:grantUriPermissions="true">  <meta-data      android:name="android.support.FILE_PROVIDER_PATHS"      android:resource="@xml/provider_paths" /></provider>

@xml/provider_paths是我们授权访问的文件路径,这里我写的是

<paths xmlns:android="Http://schemas.android.com/apk/res/android">  <external-path name="external_files" path="."/></paths>

关于这个"path.xml",其实还有一些可以补充说明的,后面有空会补上,这里我简单说明一下:

因为我们创建临时文件的时候,文件指定的目录是externalCacheDir?.path,对应的path就是external-cache-path,表示我们要临时授权的目录是externalCacheDir,如果文件目录指定的是其他路径,那path节点也需要改成代表对应文件夹的节点,这样其他应用才能访问到我们APP的私有目录。

以上就是关于“Android无需权限调用系统相机拍照怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: Android无需权限调用系统相机拍照怎么实现

本文链接: https://www.lsjlt.com/news/352077.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android无需权限调用系统相机拍照怎么实现
    这篇“Android无需权限调用系统相机拍照怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android无需权限调用...
    99+
    2023-07-05
  • 一文详解Android无需权限调用系统相机拍照
    目录正文1、直接获取用户拍照结果2、用户拍照之后指定相机将未压缩的图片存放到我们指定的目录正文 在进行一些小型APP的开发,或者是对拍照界面没有自定义要求时,我们可以用调起系统相机...
    99+
    2023-03-19
    Android调用系统相机拍照 Android 系统调用
  • Android无需权限调起系统相机怎么实现
    这篇文章主要讲解了“Android无需权限调起系统相机怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android无需权限调起系统相机怎么实现”吧!在进行一些小型APP的开发,或者是...
    99+
    2023-07-05
  • Android如何调用系统相机拍照
    本文实例为大家分享了Android调用系统相机拍照的具体代码,供大家参考,具体内容如下 private void takePhoto() { Uri uri = null; if (which_image == FRONT_I...
    99+
    2023-05-30
    android 系统相机 roi
  • Android Flutter怎么使用相机实现拍摄照片
    本篇内容介绍了“Android Flutter怎么使用相机实现拍摄照片”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用相机前的准...
    99+
    2023-07-05
  • Win8.1系统摄像头拍摄时提示需要相应权限无法拍摄画面
    朋友近日新安装了Win8系统,他的电脑是带有摄像头的机子,想要利用此功能来进行拍摄的时候,却提示:此应用需要相应权限才能使用你的摄像头,无法拍摄画面。相信这样的问题很多Win8用户都遇到过,那么我们该怎么操作才能让摄像头...
    99+
    2023-06-05
    Win8.1 摄像头 无法拍摄 画面 系统 权限
  • 详解Android Flutter如何使用相机实现拍摄照片
    目录简介使用相机前的准备工作在flutter中使用camera总结简介 在app中使用相机肯定是再平常不过的一项事情了,相机肯定涉及到了底层原生代码的调用,那么在flutter中如何...
    99+
    2023-05-14
    Android Flutter相机拍摄照片 Flutter相机拍摄照片 Android Flutter 相机
  • uniapp怎么设置使用照相机和相册权限
    这篇文章主要介绍了uniapp怎么设置使用照相机和相册权限的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇uniapp怎么设置使用照相机和相册权限文章都会有所收获,下面我们一起来看看吧。在写uniapp项目中,对...
    99+
    2023-07-04
  • Android使用相机实现拍照存储及展示功能详解
    目录无图片处理款配置存储路径映射配置 fileprovider布局文件主代码文件无图片处理款 配置存储路径映射 新建文件:res/xml/files.xml 使用 paths 标签映...
    99+
    2023-01-04
    Android相机 Android使用相机拍照 Android使用相机存储
  • 怎么用HTML5实现调用手机摄像头拍照功能
    本篇内容介绍了“怎么用HTML5实现调用手机摄像头拍照功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • Android怎么调用手机摄像头拍照和录音功能
    本文小编为大家详细介绍“Android怎么调用手机摄像头拍照和录音功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android怎么调用手机摄像头拍照和录音功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。调...
    99+
    2023-06-29
  • 微信小程序如何调用内置照相机实现拍照及图片上传
    这篇文章主要介绍了微信小程序如何调用内置照相机实现拍照及图片上传的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序如何调用内置照相机实现拍照及图片上传文章都会有所收获,下面我们一起来看看吧。  1.ind...
    99+
    2023-06-26
  • Android无需读写权限通过临时授权读写用户文件怎么实现
    这篇文章主要讲解了“Android无需读写权限通过临时授权读写用户文件怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android无需读写权限通过临时授权读写用户文件怎么实现”吧!在...
    99+
    2023-07-05
  • 怎么用Java+OpenCV调用摄像头实现拍照功能
    这篇文章主要介绍了怎么用Java+OpenCV调用摄像头实现拍照功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Java+OpenCV调用摄像头实现拍照功能文章都会有所收获,下面我们一起来看看吧。环境准...
    99+
    2023-06-29
  • python怎么实现调用摄像头并拍照发邮箱
    这篇文章主要介绍了python怎么实现调用摄像头并拍照发邮箱,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python的五大特点是什么python的五大特点:1.简单易学,开...
    99+
    2023-06-14
  • Android 通过Intent调用系统拍照程序出现图片太小的问题解决办法
    Android 通过Intent调用系统拍照程序出现图片太小的问题解决办法Intent it = newIntent("android.media.action.IMAGE_CAPTURE");startActivityForResult(...
    99+
    2023-05-31
    android intent 拍照
  • Electron怎么实现调用外接摄像头并拍照上传
    这篇文章主要介绍了Electron怎么实现调用外接摄像头并拍照上传的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Electron怎么实现调用外接摄像头并拍照上传文章都会有所收获,下面我们一起来看看吧。背景基于E...
    99+
    2023-07-05
  • Android应用中怎么实现一个照相功能
    本篇文章为大家展示了Android应用中怎么实现一个照相功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android 照相在android中,照相功能系统已经提供,在app中可以直接使用。当手机...
    99+
    2023-05-31
    android roi
  • 怎么在Android应用中实现一个单击拍照长按录像功能
    怎么在Android应用中实现一个单击拍照长按录像功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在modlue gradle中添加compile '...
    99+
    2023-05-31
    android roi
  • Naive与WebView在Android中怎么实现互相调用
    本篇文章为大家展示了Naive与WebView在Android中怎么实现互相调用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android  Naive与WebView的互相调用详解An...
    99+
    2023-05-31
    android naive webview
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作