Android 7.0 获取相机拍照图片,适配三星手机拍照,解决三星手机拍照屏幕旋转,判断设备是否有摄像头

方法1

新建/res/xml/file_paths:

 

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android"><external-path name="external_files" path="."/>
</paths>

配置manifest文件

 

 

<providerandroid:name="android.support.v4.content.FileProvider"android:authorities="com.hunuo.yohoo.provider" //com.hunuo.yohoo=包名android:exported="false"android:grantUriPermissions="true"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/provider_paths"/>
</provider>

开始拍照

Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //系统常量, 启动相机的关键
startActivityForResult(openCameraIntent, REQUEST_CODE_TAKE_PICTURE); // 参数常量为自定义的request code, 在取返回结果时有用

 

拍照返回图片

  Bitmap bm = (Bitmap) data.getExtras().get("data");
//            savePath = FileUtil.saveBitmap(bm);sczimage.setImageBitmap(bm);

裁剪图片

    private void crop(file filePhoto) {
//        cropImagePath = file.getAbsolutePath();Intent intent = new Intent("com.android.camera.action.CROP");intent.setDataAndType(getImageContentUri(filePhoto), "image/*");intent.putExtra("crop", "true");intent.putExtra("aspectX", 300);intent.putExtra("aspectY", 300);intent.putExtra("outputX", 300);intent.putExtra("outputY", 300);intent.putExtra("scale", true);intent.putExtra("return-data", false);intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(filePhoto));intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());intent.putExtra("noFaceDetection", true);startActivityForResult(intent, RESULT_REQUEST_CODE);}

3、解决三星手机拍照屏幕旋转问题

在activity下面添加

<activity android:name=".activitys.SfzShiBieActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"></activity>
 

 

或者

 

解决办法2:

在Application的onCreat()方法中添加以下代码:

        // android 7.0系统解决拍照的问题StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();StrictMode.setVmPolicy(builder.build());builder.detectFileUriExposure(); 

 

判断相机

CameraManager manager = (CameraManager) getContext().getSystemService(Context.CAMERA_SERVICE);
String[] cameraIds = new String[0];
try {cameraIds = manager.getCameraIdList();
} catch (CameraAccessException e) {e.printStackTrace();
}
if (cameraIds != null && cameraIds.length > 0) {}else {showMyToast("请接入摄像头!");
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法前戏 递归 二分查找 列表查找

一、递归 概念&#xff1a; 函数直接或者间接的调用自身算法的过程&#xff0c;则该函数称为递归函数。在计算机编写程序中&#xff0c;递归算法对解决一大类问题是十分有效的。 特点&#xff1a; ①递归就是在过程或者函数里调用自身。 ②在使用递归策略时&#xff0c;必须有一…

实现瀑布流的核心代码

.warp {column-count: 2;column-gap: 10px;padding: 5px; }.item {height: 80px;margin-bottom: 10px;break-inside: avoid; }效果如下

Mac OS X Terminal 101:终端使用初级教程以及Xcode

转自 http://www.renfei.org/blog/mac-os-x-terminal-101.html 最近学习苹果认证的《Mac OS X Support Essentials》教程&#xff0c;看到 Command Line 一节有很多实用的知识&#xff0c;下面选取一部分翻译 笔记&#xff0c;整理成此文。 你可以整天驾驶汽车而不用知道如何修…

android studio 获取SHA1值 MD5值

运行CMD 输入 cd .android 回车 输入 keytool -list -v -keystore D:/yohoo.keystore -storepass android 回车 D:/yohoo.keystore------就是你的keystore的位置 &#xff0c; android------- 就是你的keystore的密码 如果提示keytool 不是内部命令或可运行程序。需先配…

myeclipse使用git图文教程

Git介绍与使用 1、什么是Git Git是分布式版本控制系统 Git是一款免费、开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 2、集中式版本控制系统&#xff08;CVS / SVN等&#xff09; 集中式版本控制系统&#xff0c;版本库是集中存放在中央服务器…

Java内存模型_基础

线程之间的通信机制有两种&#xff1a; 1、共享内存&#xff1a;线程之间共享程序的公共状态&#xff0c;通过写-读内存中的公共状态进行隐式的通信。 2、消息传递&#xff1a;线程之间没有公共状态&#xff0c;线程之间必须发送消息来显示的进行通信 同步&#xff1a;是指程序…

centos 宝塔面板 mongodb 设置用户账号密码登录

挂在网上的mongodb测试数据库&#xff0c;默认的无密码&#xff0c;端口直接登录&#xff0c;本来想着不会有人盯上吧&#xff0c;结果&#xff0c;一个月后&#xff0c;被黑客删库了&#xff0c;所以不管是接口&#xff0c;还是数据库的安全性一定要保证&#xff01;&#xff…

启动activity的标准的action常量及对应的字符串

转载于:https://www.cnblogs.com/ouyangping/p/7481700.html

android 省市区选择器

demo1链接&#xff1a;https://download.csdn.net/download/meixi_android/10819638 效果1——跳页全屏式地区选择器&#xff1a; demo2链接&#xff1a;https://download.csdn.net/download/meixi_android/10823744 样式2——dialog市区选择器&#xff1a; 实现方法&#xf…