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

编程入门 行业动态 更新时间:2024-10-18 18:21:28

手机视频直播系统——Android端<a href=https://www.elefans.com/category/jswz/34/1770945.html style=上传图片兼容问题"/>

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

手机视频直播系统在互联网领域的受欢迎程度一直居高不下,直播已经成为当下最流行的一种娱乐消遣方式。直播系统也从之前的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 拍照-->
<providerandroid:name="android.support.v4.content.FileProvider"android:authorities="com.yunbao.phonelive.fileprovider"android:exported="false"android:grantUriPermissions="true"><meta-dataandroid: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端上传图片的实现方案。这一方案可以解决人们在上传图片时遇到的各种问题,从根本上提升用户的产品体验。

更多推荐

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

本文发布于:2024-02-07 01:45:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1752592.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:上传图片   兼容问题   系统   手机   视频

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!