使用intent调用系统照相机拍照

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1.使用intent调用系统照相机拍照

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

2.获取所拍照片并显示

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (intent.resolveActivity(getPackageManager()) != null){
            File photoFile = null;
            try {
                photoFile = createImageFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (photoFile != null){
                Uri uri = Uri.fromFile(photoFile);
                intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
                startActivityForResult(intent,1);
            }

        }


3.创建为所拍照片储存的临时文件夹

String mCurrentPhotoPath;

private File createImageFile() throws IOException {
    // Create an image file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    String imageFileName = "JPEG_" + timeStamp + "_";
    File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);//由getExternalFilesDir(),以及getFilesDir()创建的目录,应用卸载后会被删除!

    File image = File.createTempFile(
        imageFileName,  /* prefix */
        ".jpg",         /* suffix */
        storageDir      /* directory */
    );

    // Save a file: path for use with ACTION_VIEW intents
    mCurrentPhotoPath = "file:" + image.getAbsolutePath();
    return image;
}

4.把所拍图片显示在系统图库

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == 1){
            Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            File file = new File(current_photo_path);
            Uri uri = Uri.fromFile(file);
            intent.setData(uri);
            sendBroadcast(intent);
        }
    }

5.设置权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    <uses-feature android:name="android.hardware.camera"
        android:required="true" />

PS: 参考


安卓开发中启动相机并拍照保存图片 阅读详情

相关推荐

Android 拍照:如何使用已有相机应用捕获图片(Taking Photos Simply

如果你的程序并不需要一定有Camera,可以添加 android:required="false"  的tag属性。这样的话,Google Play 也会允许没 有camera的设备下载这个程序。当然你有必要在使用Camera之前通过 hasSystemFeature(PackageManager.FEATURE_CAMERA) 方法来检查设备上是否有Camera。如果没有,你应该关闭你的 Camera相关的功能! 使用相机应用程序进行拍照(Take a Photo with .

m0_66155658的博客 3182

Android学习之调用系统相机实现拍照功能

一、今天,来介绍如何调用系统自带的相机进行拍照,主要有以下2种实现的方式: 1、Camera应用程序包含了一个意图过滤器,即intent filter,它使得开发人员能够提供与Camera应用程序同等的图像捕获能力,因此我们可以在应用程序的AndroidManifest.xml清单文件中新建一个意图过滤器,这样就会告诉Android系统,这个包含此意图过滤器的活动将根据指令执行指定的任务,创建意图

茕夜 1万+

Android 调用相机APP获取拍照图片和从相册选择图片

源码部分分析 Camera.java → 点我定位,注意研究1134行与2023行的两个方法。 通过源码可以发现,输出的图片有2个分支 如果你没有指定Intent里面的Extra参数,它就返回一个序列化(putExtra(“data”, bitmap))的Bitmap,从理论上来说,这样的代码写的很烂,属于Magic Number。 如果你指定了Intent里面的Extra参数MediaS

薛瑄的博客 1万+

android调用摄像头自动拍照,Android应用中调用手机摄像头拍照并保存详解

/*** 启动系统相机** @param view*/public void takePhoto(View view) {Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent, CASE_CAMERA);}拍完成照后的回调函数如下:/*** 拍照后的回调函数*/@Overr...

weixin_42503036的博客 1253

Camera学习,调用系统摄像机上传图片。

1、android很多应用会调用照相机功能,比如拍照上传用户图像等等,不多说,下面上传简单的demo: public class MainActivity extends Activity {//ActionBarActivity private Uri uriSavedImage; private ImageView image; @Override p...

weixin_30821731的博客 101

android 调用系统相机拍照返回Intent 为空的处理

调用相机进行拍照,我们一般会用到如下代码:          Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);          startActivityForResult(intent, reqCode);//reqCode是返回的code。          但是在有些手机会在protected void onAc

古道边、半轮月 923

调用系统照相机拍照与相册图片

1.清单文件配置 &lt;uses-permission android:name="android.permission.INTERNET" /&gt; &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt; &lt;uses-permission android:na...

Key_p的博客 450

Android应用中的照相机调用拍照功能实现

Intent是Android中实现应用组件间交互的一种机制。它可以启动一个Activity、Service或BroadcastReceiver,也可以在应用程序的不同组件之间传递数据。Intent可以分为显式Intent和隐式Intent。显式Intent明确指定要启动的组件的名称,而隐式Intent则描述要执行的操作和数据类型,由系统决定哪个组件应响应。在拍照功能中,Intent主要用作启动系统相机应用来完成拍照操作,或者用于在不同的应用组件之间传递拍照后的图片数据。

weixin_32661831的博客 544

android调用系统照相机拍照

调用系统照相机拍照,之后将照片保存到sdCard中,从界面中再回显出来: 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.andr

xujingqing的博客 934

Android调用系统照相机拍照并自定义名称存储

sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用。Toast.makeText(this, "未检测到SD卡", Toast.LENGTH_SHORT).show();//文件名:车牌号+代码+时间。//取得当前日期时间。

weixin_67271870的博客 1081

Intent选择器,开系统图库选择图片,开相机拍照

//开启系统图库 Intent intent1 = new Intent(Intent.ACTION_PICK); intent1.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); //开相机 Intent intent2 = new I

lzc394049722的博客 2051

调用其他照相机应用拍照

一直都想把外部调用camera拍照研究一下,抽了好几天下班时间终于完成了。 http://developer.android.com/training/camera/photobasics.html 这个是google的教程,我认为他几乎把所有的有关于外部调用Camera的内容都写了,所以这里我就翻译一下大体过程 首先是Request Camera Permission 这里主要是APK

shen332401890的专栏 7206

android基础学习5————隐式意图intent开启系统照相机

在实际开发中,避免不了要调用其他应用程序的组件。例如,在开发新浪微博时,需要启动系统照相机功能。接下来通过案例演示如何使用隐式意图。

sinat_36319434的博客 1516

Android系统照相机调用与图片保存实战教程

Android应用权限是保障用户数据安全和隐私的重要机制。开发者在编写应用时,需要根据应用功能对不同权限进行申请,比如网络访问、摄像头使用、存储读写等。这些权限的申请通常在应用的配置文件AndroidManifest.xml中声明,并在运行时向用户明确说明并获取授权。在Android开发中,Intent是一个非常重要的组件,它用于在不同的组件之间进行交互。对于启动系统照相机,我们需要创建一个特定类型的Intent,即ACTION_IMAGE_CAPTURE。

weixin_29903713的博客 1223

安卓Android开发:以ActivityResultLauncher方式进行页面跳转、传递参数、拍照或选择文件,以及调用系统应用打开各种类型的指定文件

ActivityResultLauncher是安卓官方推荐的用来替代startActivityForResult的新方式。通过它可以非常方便地调用系统Intent进行拍照,或是选取本地的文件。 本文共分为5个章节 : 一、定义ActivityResultLauncher 二、注册Launcher 三、调用系统Intent 四、使用FileProvider复制一份文件 五、使用系统应用打开各种类型的指定文件 一、定义ActivityResultLauncher 在需要调用系统Intent.

女儿控老徐的专栏 4776

android调用照相机拍照获取照片并…

1.调用系统照相机程序 Intent intent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE);  startActivityForResult(intent,TAKE_PHOTO_WITH_DATA); 2.在onActivityResult中处理返回的data final Bitmap photo = data.getParcelableExtr

android-星空 3万+

android系统相机的使用、及解决拍照闪退的问题

相机已成为android手机不可或缺的一部分,我们在开发可能也会涉及到关于相机的使用,以及在使用中会遇到一些问题(重点),下面把我个人的一点经验贴出来,仅供大家参考学习。 最简单的方式直接调用系统相机进行拍照,虽然能满足拍照的要求,但拍照的功能和界面却局限系统相机的样子,于是我们这时根据Camera API实现自己的拍照和摄像程序,当然这并不是我想说重点,今天的重点在于开发中不同型号手机调用系统...

疯流人物 8955

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

https://www.cnblogs.com/plokmju/p/Android_SystemCamera.html 前言   在很多场景中,都需要用到摄像头去拍摄照片或视频,在照片或视频的基础之上进行处理。但是Android系统源码是开源的,很多设备厂商均可使用,并且定制比较混乱。一般而言,在需要用到摄像头拍照或摄像的时候,均会直接调用系统现有的相机应用,去进行拍照或摄像,我们只取它拍摄的...

weixin_30655569的博客 191
上一篇: popupmenu and menu
下一篇: 动态加载menu item
濯君
博客等级 码龄11年 148粉丝 195原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值