手机视频直播系统——Android端上传图片兼容问题

作者 : 开心源码 本文共2254个字,预计阅读时间需要6分钟 发布时间: 2022-05-12 共200人阅读

前言

手机视频直播系统在互联网领域的受欢迎程度一直居高不下,直播已经成为当下最流行的一种娱乐消遣方式。直播系统也从之前的pc转到现在的手机APP,目前市面上人们使用的手机系统分为两个,即Android端和iOS端。今天来给大家分享一下关于Android端上传图片方面的相关内容。 Android端上传图片功能,即调用系统相册和拍照上传直播封面和头像,需要适配各种机型和不同系统版本,以下为此过程中遇到的具体问题及其相应的处理方案。
1.为了适配不同系统版本,调用相册和拍照时分别对系统版本号进行判断,做不同的解决。如下
//打开相册,选择文件

if (Build.VERSION.SDK_INT < 19) {    intent.setAction(Intent.ACTION_GET_CONTENT);} else {    intent.setAction(Intent.ACTION_OPEN_DOCUMENT);}

//开启摄像头,执行拍照

Uri uri = null;if (Build.VERSION.SDK_INT >= 24) {    uri = FileProvider.getUriForFile(mContext, WordUtil.getString(R.string.FILE_PROVIDER), mCameraResult);    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);} else {    uri = Uri.fromFile(mCameraResult);}

2.为理解决7.0系统对目录访问的限制的问题,所以用到了FileProvider,需要在AndroidManifest.xml中添加provider节点,在xml文件夹中创立file_paths.xml文件

<!--Android 7.0 拍照--><provider    android:name="android.support.v4.content.FileProvider"    android:authorities="com.yunbao.phonelive.fileprovider"    android:exported="false"    android:grantUriPermissions="true">    <meta-data        android:name="android.support.FILE_PROVIDER_PATHS"        android:resource="@xml/file_paths"/></provider>

3.为理解决,许多机型在选择相册和拍照后的裁剪时出现的SecurityException问题,首先在gradle中增加依赖 ,用UCrop去做Intent跳转,能设置图片裁剪比例和宽高,选择相册图片后的裁剪代码如下

/** * 选择后裁剪 */private void cropAfterChoose(Uri uri) {    mCorpResult = getNewFile();    try{        Uri resultUri = Uri.fromFile(mCorpResult);        if (resultUri == null || mFragment == null || mContext == null) {            return;        }        UCrop uCrop = UCrop.of(uri, resultUri)                .withAspectRatio(1, 1)                .withMaxResultSize(400, 400);        Intent intent = uCrop.getIntent(mContext);        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);        startActivityForResult(intent, mCropResultCallback);    }catch (Exception e){        try {            Uri resultUri = null;            if (Build.VERSION.SDK_INT >= 24) {                resultUri = FileProvider.getUriForFile(mContext, WordUtil.getString(R.string.FILE_PROVIDER), mCorpResult);            }            if (resultUri == null || mFragment == null || mContext == null) {                return;            }            UCrop uCrop = UCrop.of(uri, resultUri)                    .withAspectRatio(1, 1)                    .withMaxResultSize(400, 400);            Intent intent = uCrop.getIntent(mContext);            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);            startActivityForResult(intent, mCropResultCallback);        }catch (Exception e1){            e1.printStackTrace();        }    }}

以上就是手机视频直播系统开发过程中,关于Android端上传图片的实现方案。这一方案可以处理人们在上传图片时遇到的各种问题,从根本上提升客户的产品体验。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 手机视频直播系统——Android端上传图片兼容问题

发表回复