惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
N
News | PayPal Newsroom
SecWiki News
SecWiki News
P
Privacy International News Feed
T
Troy Hunt's Blog
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
L
LINUX DO - 热门话题
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Security Latest
Security Latest
AWS News Blog
AWS News Blog
S
Secure Thoughts
W
WeLiveSecurity
H
Heimdal Security Blog
T
Threat Research - Cisco Blogs
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Security @ Cisco Blogs
G
GRAHAM CLULEY
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Spread Privacy
Spread Privacy
L
Lohrmann on Cybersecurity
C
CERT Recently Published Vulnerability Notes
S
Security Affairs
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google Online Security Blog
Google Online Security Blog
Cisco Talos Blog
Cisco Talos Blog
雷峰网
雷峰网
Cloudbric
Cloudbric
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
Hacker News: Ask HN
Hacker News: Ask HN
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google DeepMind News
Google DeepMind News
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
Latest news
Latest news
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
D
Docker
Recent Announcements
Recent Announcements
博客园 - 【当耐特】
H
Help Net Security
博客园 - 司徒正美
TaoSecurity Blog
TaoSecurity Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Check Point Blog
博客园 - 叶小钗

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 你要加油呐 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 iii:零集成架构的后端统一运行时 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽 片刻 - Jdeal | Life is like a Design.
安卓APP通话记录与录音上传踩坑记录 - 子舒的博客
子舒的博客 · 2026-05-29 · via BlogFinder

做通话录音上传,核心不是简单申请权限后读取文件。本地测试时,很多情况下只申请权限并不能稳定拿到通话记录或录音文件,尤其是 Android 真机环境。通常需要结合原生 Java 能力、打包自定义基座、真机调试来完成。

最近开发内部人员软件项目有个新需求,拿到本机通话记录以及通话录音文件,然后上传到服务器。开始接到这个需求的时候觉得很简单,不就是获取数据,匹配数据,上传数据那一套流程嘛,但是我实际深入进来的时候发现好多坑。由于之前没怎么深入开发过安卓APP,所以踩了很多坑,也是花了好几天时间加上AI分析我才搞定。

就把这几天踩过的坑都记录一下分享出来,下次遇到了可以有效解决,这里只记录思路,具体代码就不赘述了。

做通话录音上传,核心不是简单申请权限后读取文件。本地测试时,很多情况下只申请权限并不能稳定拿到通话记录或录音文件,尤其是 Android 真机环境。通常需要结合原生 Java 能力、打包自定义基座、真机调试来完成。

1. 准备原生能力

通话录音相关能力很多不是纯前端 API 能稳定解决的,尤其包括:

监听通话状态
获取系统通话记录
扫描本地录音文件
读取部分受限目录
处理 Android 厂商差异

所以需要写 Android 原生插件或原生模块,通过 Java 调用系统能力,再暴露给前端使用。

2. 打包自定义基座

本地 H5 或普通运行环境无法测试完整链路。

需要把原生插件打进自定义基座,然后在真机上运行。

大致流程是:

编写 Android 原生插件
配置 manifest 权限
打包自定义基座
安装到真机
前端调用原生插件能力
查看真机日志

这一步很关键。没有自定义基座,很多原生能力不会生效。

3. 申请必要权限

运行时需要申请权限,但权限只是前置条件,不代表一定能拿到数据。

常见权限包括:

READ_PHONE_STATE
READ_CALL_LOG
READ_EXTERNAL_STORAGE
READ_MEDIA_AUDIO
MANAGE_EXTERNAL_STORAGE

还要注意:

Android 版本不同,权限策略不同,部分权限需要跳系统设置页手动开启,所有文件访问权限不是普通弹窗权限,厂商系统可能把权限入口放在不同位置。

4. 获取通话记录

权限通过后,通过 Java 读取系统通话记录。

主要拿到这些信息:

号码
联系人
通话类型
通话开始时间
通话时长
这些数据用于后面和录音文件做匹配。

5. 扫描录音文件

录音文件通常不在通话记录里,需要单独扫描。

扫描方式一般包括:

扫描常见厂商录音目录
通过 MediaStore 查询音频文件
允许用户手动设置录音目录

需要拿到:

文件路径
文件名
文件大小
修改时间
录音时长

6. 匹配通话和录音

通话记录和录音文件需要自己匹配。

常见匹配依据:

手机号
通话开始时间
通话时长
录音文件名
录音文件修改时间

一般不能只靠单一字段,最好结合号码和时间窗口来判断。

7. 判断是否可上传

匹配到录音后,调用后端接口判断这条通话是否允许上传。

如果后端返回可上传所需信息,则允许继续上传;如果没有返回有效信息,则前端显示不可上传。

8. 上传录音文件

先把本地录音文件上传到文件服务,拿到文件地址或文件 ID。

本地录音文件 -> 文件上传接口 -> 文件 URL 这一步只代表文件上传成功,不代表业务录音提交成功。

9. 提交录音数据

拿到文件地址后,再调用业务接口提交录音信息。

通常包括:

手机号
通话类型
通话时长
通话唯一标识
录音文件地址
后端查询接口返回的业务字段

10. 记录上传状态

最后要记录本地状态,避免重复上传。

常见状态:

未上传
已上传
上传失败
不可上传

同时建议保存唯一标识,例如:

手机号 + 通话时间 + 通话类型 用于判断同一条通话是否已经处理过。

总结流程

完整链路可以概括为:

写 Java 原生能力
打包自定义基座
真机安装调试
申请电话和文件权限
读取系统通话记录
扫描本地录音文件
匹配通话和录音
调用接口判断是否可上传
上传录音文件
提交录音业务数据
缓存上传状态

这类功能的重点是:必须真机 + 原生能力 + 自定义基座调试。只靠前端申请权限,通常无法稳定完成通话录音获取和上传。