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

敏捷冲刺日志 - Day 5

敏捷冲刺日志 - Day 5

站立会议

站立时会议改为线上进行。

  • 昨天已完成的工作:

    • saveVideoToGallery 功能已实现并测试通过。
    • 初步定位了“替换”闪退问题的原因是 SecurityException
  • 今天计划完成的工作:

    • 核心任务:尝试修复“替换”功能的闪退问题。
    • 方案:使用 MediaStore.createDeleteRequest API 来请求用户授权删除文件,这适用于 Android 11 及以上。对于 Android 10,尝试捕获 RecoverableSecurityException 并启动其附带的 Intent 来请求授权。
  • 工作中遇到的困难:

    • MediaStore.createDeleteRequest 接口虽然好用,但它只能在 Android 11+ 上使用,这意味着必须编写版本兼容性代码。
    • 在测试中发现,RecoverableSecurityException 这个异常在 Android 10 上的行为似乎不稳定,有时并不会如预期那样被抛出,导致无法进入用户授权流程,应用依然会闪退。这是今天遇到的最大障碍。

项目燃尽图

661c981e2a3499b65ccf5801838779ca

代码/文档签入记录

  • 代码签入: fix(replace): Attempt to fix crash with createDeleteRequest and RecoverableSecurityException
  • 签入记录对应的Issue内容与链接:
    • Issue: #BUG-001 - “替换”功能闪退
    • 链接: [链接到内部工单系统]
  • Code Review: 编码规范文档无变化。

最新模块的代码

这是本次为解决闪退问题而编写的核心逻辑。它区分了不同安卓版本,尝试使用不同的 API 来安全地删除文件。

    // 注册一个 ActivityResultLauncher 来处理删除请求的结果private val deleteRequestLauncher = registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result ->if (result.resultCode == Activity.RESULT_OK) {Toast.makeText(this, "原始视频已删除", Toast.LENGTH_SHORT).show()} else {Toast.makeText(this, "删除原始视频失败或被取消", Toast.LENGTH_SHORT).show()}}private fun deleteOriginalVideos(uris: List<Uri>) {if (uris.isEmpty()) return// Android 11 (R) 及以上版本if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {val pendingIntent = MediaStore.createDeleteRequest(contentResolver, uris)val request = IntentSenderRequest.Builder(pendingIntent.intentSender).build()deleteRequestLauncher.launch(request)} else { // Android 10 (Q) 及以下uris.forEach { uri ->try {// 直接尝试删除contentResolver.delete(uri, null, null)} catch (e: SecurityException) {// 如果是可恢复的安全异常(仅限 Android 10)if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && e is RecoverableSecurityException) {val intentSender = e.userAction.actionIntent.intentSenderval request = IntentSenderRequest.Builder(intentSender).build()// 启动授权流程deleteRequestLauncher.launch(request)} else {// 其他无法处理的异常Toast.makeText(this, "删除原始视频失败,权限不足", Toast.LENGTH_SHORT).show()}}}}}

运行结果的截图

ddcea1c54c5c60f94f64ce17882d748f

每日每人总结

  • 刘瑞康 (开发): 编写了一个独立测试项目专门验证文件删除逻辑,确认 RecoverableSecurityException 在 Android 10 上行为不稳定,该发现为团队决策提供了关键依据。
  • 刘泽昊 (开发): 根据兼容性策略,调整了批量完成后的操作界面,使“批量替换”按钮仅在 Android 11 及以上系统中显示,避免用户在低版本系统上触发崩溃。
  • 伊尔番 (PM): 针对“替换”功能的技术障碍,已启动风险预案。与用户初步沟通解释了系统限制,并探讨以强化“分享”或“另存为”作为替代方案。
http://www.gsyq.cn/news/70481.html

相关文章:

  • 深入解析:Spring Kafka消费者被踢出组?CommitFailedException异常全面解析与解决方案
  • 计算机视觉黄金时代的回顾与展望
  • homebrew运行机制
  • 解码构造与析构
  • 朝花夕拾OI回忆录
  • 细胞因子:细胞信使的分子世界与功能解析
  • 87键键盘的数字键对应快捷键含义
  • 深入解析:神经流形:大脑功能几何基础的革命性视角
  • 2025最新成都房屋装修公司推荐!成都家装市场权威榜单发布,品质服务双优助力打造理想家居
  • 2025.12.3
  • 2025最新成都精装房装修公司推荐!家装实力品牌榜单发布,品质服务双优打造理想家居
  • scheme中的辛普森积分
  • sql文件无法设置打开方式为ssms19,重新安装也不行
  • 2025年下半年套管工厂综合推荐榜单:行业专家权威评测
  • 蓝桥杯Python-语法基础-1
  • 图书馆管理系统项目冲刺博客 Day2
  • 2025住人集装箱房生产品牌排名如何?谁在颠覆未来居住?
  • 完整教程:【高阶数据结构】AVL树
  • 了解NFSv4中的nfsidmap
  • 你的学习思路有实践导向的优势,但需调整顺序和手段才能更高效成体系!核心结论:先搭建,边做边补原理,再集中突破面试考点,比 “先堆方案再回头学” 更高效。
  • 2025年11月聚乙烯瓶厂家综合评估与选购指南:十大知名供应商深度解析
  • 2025年11月农药瓶供应商排行榜:安徽金汇龙包装位居榜首
  • (论文阅读)An Image is Worth 32 Tokens for Reconstruction and Generation
  • 酷我音乐APP(手机音乐播放器) v12.0.0.2 去广告破解版
  • AI元人文:没有AI辅助,价值维度谱何以可能?
  • 2025年12月美国移民,马耳他移民,香港移民机构推荐榜,彰显合规服务与全球资源实力
  • 2025年12月澳洲移民,美国移民,新加坡移民机构推荐:聚焦资质案例与成功率深度解析
  • 颜色空间,线性和伽马颜色空间
  • 2025年12月葡萄牙移民,新加坡移民,香港移民机构推荐榜:甄选合规中介实测解析
  • 2025年7款免费AI论文写作工具推荐:毕业论文一键生成神器