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

news/2024/11/20 12:33:21/

方法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.ppmy.cn/news/303501.html

相关文章

三星手机拍照,上传照片或者下载导致图片旋转90°的解决办法。

项目需求。 因为项目中需要对拍照之后的图片进行上传。 &#xff08;这也是一个简单的问题&#xff09; 但是就是三星手机&#xff08;三星note3)&#xff0c;出现拍照之后照片旋转了九十度。 然后我们上传上去&#xff0c;然后通过其他手机请求url再次显示还是旋转过的。 …

智能手机列表

智能手机列表 这是世界上已发布的智能手机的列表和详细规格。 本列表按照企业分类&#xff0c;按照企业名拼音首字母排序&#xff0c;手機按照發布時間排序。 Android智能手機&#xff08;圖為三星Galaxy Note 10系列&#xff09; iOS智能手機&#xff08;圖為iPhone 6系列&am…

拆机清灰重装系统数据恢复——心得汇总

一、前言 听说&#xff0c;会拆机&清灰&重装系统的工科男更容易得到女生的青睐。。。 于是&#xff0c;这么多年来在强大的网络支持下&#xff0c;我学会了这些技能&#xff0c;有了自己的一套工具&#xff0c;还掌握了一些基本的电脑维修常识。 因此&#xff0c;立…

win7下安装ubuntu10.04双系统

临近寒假了项目不紧,我计划在自己的笔记本上安装ubuntu10.04系统,因为不想舍弃好用的VS2010,于是决定在本上保留win7,装双系统.附言:本教程是在华硕A40J型号的笔记本上用光盘安装win7ubuntu10.04双系统,有不同硬件或软件需求的同学在安装过程中不一定碰到和我相同的问题,敬请参…

相机闪存卡数据恢复方法/数码相机误删照片恢复详解

很多喜欢玩摄影的朋友都知道&#xff0c;美能达相机自诞生以来就是技术达人&#xff0c;上世纪末被柯尼卡收购&#xff0c;本世纪初被索尼收购&#xff0c;但在技术创新方面一直没有落伍。历史上对自动对焦和光学防抖结构作出过不可替代的贡献。不过在做工、操作性方面一直备受…

新手购买数码相机的十点建议

最近小编在网络上溜达&#xff0c;看看网友都在关心些什么&#xff0c;发现了有位网友用切身经历总结出了几大购买数码相机的注意事项&#xff0c;虽然内容只是个人观点&#xff0c;不过大家还是可以从中总结出不少的东西。  1、不一定要求CCD尺寸大&#xff0c;一般来说&…

05 DIY流星观测站——相机简介

相关系列文章 01 DIY流星观测站02 DIY流星观测站——手把手搭建指南03 DIY流星观测站——设备选型与采购04 DIY流星观测站——镜头简介05 DIY流星观测站——相机简介 相机相关的知识也是异常的多&#xff0c;有很多知识点搞不懂&#xff0c;俺是大自然的搬运工。如有错误的内…

JAVA 二维码图片生成和base64位加密解密

支持带logo图片 引入包 <!--二维码工具类--><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version></dependency><dependency><groupId>com.google.zx…