Android7.0及以上相机相册调用闪退处理封装,向下兼容

来源:互联网 发布:app编程 编辑:程序博客网 时间:2024/05/01 05:10

上一篇博文其实解决过这个问题,但是,博主更希望能够一行代码调起相机和相册,并且回调拿到相应的bitmap,于是,在上一篇博文的基础上,博主又进行了相关优化,并且将相机相册的调用封装成了一个jar包,让和博主一样希望更简单写代码的诸位能够更轻松的使用相机相册。注明:该jar包处理了7.0的相机调起异常,向下兼容。



在使用方面,只需要四步,就可以轻松调起相机相册,并拿到对应图片。同时提供方法,让开发者自行设置是否在API>23以上的手机上,将拍照得到的图片同步到图库。(默认是不会同步到图库的)。



使用场景:当前jar封装针对的主要场景为:身份证拍摄上传,退款照片取证等等。


缺点:如果选择将照片同步到相册,则第二张拍摄的照片会覆盖第一张拍摄的照片,也就是在相册里你只能看到最后一张拍摄的照片。因为博主在同步的时候使用的是同一个路   径,而且照片同步在博主的开发中并不常用,没有找到需要将照片同步的使用场景,所以并没有对照片同步到相册做太多的处理,之所以会加入照片同步到相册,是因为   有朋友提过为什么拍照的照片在相册中找不到,但目前博主开发场景中使用时,博主并不需要在相册中去找刚刚拍摄的照片。


使用过程:

1.导入jar包

在libs目录下导入两个jar包,一个是support V4包,另一个是博主为大家提供的CGCamera.jar ,下载地址:http://download.csdn.net/download/xiangxiang_8_8/9950235


2.在res目录下新建一个xml文件夹(如果没有),在xml文件夹下新建一个filrpath1.xml文件,该xml文件的内容为

<resources>
     <paths>
         <external-path name="cg" path="" />
     </paths>
</resources>


3.在manifest.xml文件中加入以下代码:

3.1 权限

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

3.2 provider标签  (与Activity标签的注入并列)

 <provider
            android:name="cn.com.cg.core.camera.CGFileProvider"
            android:authorities="cn.com.cg.core.camera.fileprovider"
            android:exported="false"
           
    android:grantUriPermissions="true" >
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/filepath1" />
        </provider>

3.3 Activity标签

<activity android:name="cn.com.cg.core.camera.CameraBridgeActivity"></activity>

4. 在需要调起的相机页面使用如下方法即刻调用其相机和相册

调起相机:

//Cameralmpl.openCamera(this, this);//默认调用相机形式,不会将照片同步到相册(手机相册的根目录)
Cameralmpl.openCamera(this, this,true);//会将照片同步到相册(手机相册的根目录)

调起相册:

Cameralmpl.openPhotos(this, this);



备注1:调起相机时,博主提供了两个参数和三个参数的方法,当第三个参数为true时,在API>23的手机上会将拍照得到的照片同步到手机相册的根目录上。第三个参数为   false或者不传时,则默认不将照片同步到相册。

备注2:在调起相机的Activity页面,需要实现一个接口TakePhotoSuccess,该接口有个方法,返回一个bitmap提供给当前页面使用。


怎么样,是不是非常方便,记得当时博主兼容7.0的相机相册调用也是头疼了一阵子,现在调用起来就非常方便了。


ja包下载地址:http://download.csdn.net/download/xiangxiang_8_8/9950235,里面包含一个demo和一个jar包。



阅读全文
1 0
原创粉丝点击