当前位置: 首页 > news >正文

融云Im单独一个拍照或者拍摄插件Plugin

融云Im单独一个拍照或者拍摄插件Plugin

单独一个拍摄Plugin方便用户,也使插件栏丰富点。

一、效果图:

在这里插入图片描述

二、思路:

关键怎么从ImagePlugin里面摘拍照功能出来。

三、关键代码:
public class MyCameraPlugin implements IPluginModule, IPluginRequestPermissionResultCallback {Conversation.ConversationType conversationType;String targetId;private int mRequestCode = -1;protected PictureSelectionConfig config = PictureSelectionConfig.getInstance();public static String cameraPath;private Fragment currentFragment;@Overridepublic Drawable obtainDrawable(Context context) {return context.getResources().getDrawable(R.drawable.rc_ext_plugin_camera_selector);}@Overridepublic String obtainTitle(Context context) {return context.getString(com.yiban1314.yiban.R.string.camera);}@Overridepublic void onClick(Fragment currentFragment, RongExtension extension, int index) {conversationType = extension.getConversationType();targetId = extension.getTargetId();mRequestCode = ((index + 1) << 8) + (PictureConfig.CHOOSE_REQUEST & 0xff);this.currentFragment = currentFragment;cameraPath = "";String[] permissions = new String[] {Manifest.permission.CAMERA};if (PermissionCheckUtil.checkPermissions(currentFragment.getContext(), permissions)) {startOpenCamera(currentFragment);} else {ImDialogUtils.okAndCancel(currentFragment.getContext(), R.string.rc_permission_tip_camera_title, R.string.rc_permission_tip_camera, R.string.go_open, R.string.cancel, new View.OnClickListener() {@Overridepublic void onClick(View view) {extension.requestPermissionForPluginResult(permissions,IPluginRequestPermissionResultCallback.REQUEST_CODE_PERMISSION_PLUGIN,MyCameraPlugin.this);}});}}protected void startOpenCamera(Fragment currentFragment) {try {Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);if (currentFragment.getActivity() != null && currentFragment.getActivity().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)) {Uri imageUri;if (SdkVersionUtils.checkedAndroid_Q()) {imageUri = MediaUtils.createImageUri(currentFragment.getActivity().getApplicationContext());if (imageUri != null) {cameraPath = imageUri.toString();}} else {int chooseMode =config.chooseMode == PictureConfig.TYPE_ALL? PictureConfig.TYPE_IMAGE: config.chooseMode;File cameraFile =PictureFileUtils.createCameraFile(currentFragment.getActivity().getApplicationContext(),chooseMode,config.cameraFileName,config.suffixType);cameraPath = cameraFile.getAbsolutePath();imageUri = PictureFileUtils.parUri(currentFragment.getActivity(), cameraFile);}cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);currentFragment.getActivity().startActivityForResult(cameraIntent, PictureConfig.REQUEST_CAMERA);}} catch (Exception e) {e.printStackTrace();}}@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {}

有问题或者需要完整代码的私信我,我每天都看私信的

http://www.xdnf.cn/news/1347697.html

相关文章:

  • 自学嵌入式第二十五天:数据结构-队列、树
  • 配电网重构优化:以减小网损为目标的智能算法实现
  • 20250822给荣品RD-RK3588开发板刷Rockchip原厂的Android14时点亮荣品的8寸屏
  • SN编码升级:从“制造标记”到“数字孪生身份证”
  • There are test failures. clean deploy 异常
  • [RestGPT] RestGPT智能体
  • Bluedroid vs NimBLE
  • 20.9 QLoRA微调实战:1.5B参数Whisper-large-v2在24GB显存实现中文语音识别,CER骤降50%!
  • 使用tauri打包cocos小游戏,并在抖音小玩法中启动,拿到启动参数token
  • ​Kubernetes 详解:云原生时代的容器编排与管理
  • python selenium+pytest webUI自动化基础框架
  • Java 18 新特性及具体应用
  • linux----进度条实现和gcc编译
  • 基于海光DCU平台的cube-studio软件适配
  • BurpSuite 1.4.07.jar 怎么使用?详细安装和抓包教程(附安装包下载)
  • 前端查漏补缺
  • DAY01:【DL 第一弹】深度学习的概述
  • 机器学习在量化中的应用
  • 【计算机网络】 IPV4和IPV6区别
  • 【虚拟化】磁盘置备方式的性能损耗对比
  • MPLS原理
  • 基于SamGeo模型和地图客户端的实时图形边界提取
  • Rust Web开发指南 第一章
  • 计算机网络:TCP、UDP
  • 【Dubbo】高性能的 RPC
  • RK3506 开发板:重塑嵌入式系统领域的新标杆
  • 整数规划学习总结
  • 靶机 - SAR
  • 【学习记录】c完整线程池实现
  • 集成算法学习笔记