在安卓系统中如何在通话的时候进行录音? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Ashore
V2EX    程序员

在安卓系统中如何在通话的时候进行录音?

  •  
  •   Ashore 2023-04-26 13:22:21 +08:00 6808 次点击
    这是一个创建于 950 天前的主题,其中的信息可能已经有所发展或是发生改变。
    开发这个功能不是为了做什么流氓软件,是给公司的电话销售用的。

    目前是用 uniapp 开发,在安卓 9(荣耀 v10)上该功能能够正常使用,在安卓 13 ( coloros13 )上这个功能就失效了。
    录音部分用到的代码来自`https://learnku.com/articles/73959`。
    请问实现这个功能还有什么其他办法吗?
    还有就是原生安卓开发能够实现这样的功能吗?
    第 1 条附言    2023-04-26 18:40:28 +08:00
    uniapp 真是依托答辩,有些问题根本搜不到,在官方社区搜到了又没解答的。而且最神奇的事,调试的时候能调用打电话的权限,本地打包以后所有的权限都没有了。
    获取通话记录只能是正式包才能获取。
    38 条回复    2025-04-02 11:53:45 +08:00
    yukiww233
        1
    yukiww233  
       2023-04-26 13:30:07 +08:00
    不能;而且国产 ui 都自带通话录音了
    Ashore
        2
    Ashore  
    OP
       2023-04-26 13:48:10 +08:00
    @yukiww233 这个我也知道。。可是老板就是想让做个这个功能。。监听打电话的内容
    WanzizZ
        3
    WanzizZ  
       2023-04-26 13:54:18 +08:00
    系统的 Api 应该只能录制麦克风的吧,听筒的是无法录制的,貌似是没有权限。
    TnTZard
        4
    TnTZard  
       2023-04-26 13:58:02 +08:00
    你好,我最近也实现了这个功能,思路如下:
    1. 调研机型,我们的需求只需要普通的(小米 ov huawei 这些都自带通话录音)满足即可
    2. 安卓允许相关所有权限
    3. 手机开启通话录音后会保存录音文件
    4. 将存储路径下的录音文件拿到上传到后台服务器(上传的时候和业务 id 绑定即可)
    整个过程就是这样,希望能有所帮助
    TechOrange
        5
    TechOrange  
       2023-04-26 14:29:17 +08:00
    @TnTZard 我甚至怀疑移动、联通那些临时推销人员很需要这些功能
    billlee
        6
    billlee  
       2023-04-26 14:41:44 +08:00 via Android   1
    原生 android 支持内录电话线路,但是需要 signature 权限。即 app 要内置到系统中,或者和系统用同一个密钥签名。
    Ashore
        7
    Ashore  
    OP
       2023-04-26 15:05:53 +08:00
    @TnTZard 你的意思是在系统拨号界面手动录音,然后等挂断电话后去寻找录音文件进行上传吗?
    Ashore
        8
    Ashore  
    OP
       2023-04-26 15:06:51 +08:00
    @billlee 那也太难了。。。感觉这种功能也就只有拼多多能开发出来了
    jiaming1992
        9
    jiaming1992  
       2023-04-26 15:15:37 +08:00
    有个办法,定制个蓝牙耳机
    lisxour
        10
    lisxour  
       2023-04-26 15:20:34 +08:00
    “通话”你指的是 sim 卡打的那种电话,还是指全局性的任意通话,比如微信语音等等,那这不妥妥的成病毒软件了嘛
    lisxour
        11
    lisxour  
       2023-04-26 15:22:26 +08:00
    @lisxour 无论出于什么目的,如果不需要 root 权限都能做到的话,那安卓系统就完大蛋了啊。
    flasktest1
        13
    flasktest1  
       2023-04-26 15:34:31 +08:00 via Android
    更合理的解决方式是公司给销售配发安卓 9 的手机……本来工作用手机就不该用私人设备,也免得公司录音了非工作内容
    cnbatch
        14
    cnbatch  
       2023-04-26 15:40:09 +08:00
    老老实实告诉你的老板(甚至可以把这个讨论贴给你的老板看看),新版安卓已经不能这么干了,想要录音的话就换成自带通话录音功能的国产机。

    正如楼上讲的,工作相关就该用工作手机,免得录下非工作内容。
    Mogugugugu
        15
    Mogugugugu  
       2023-04-26 16:07:27 +08:00
    做定制机
    96
        16
    96  
       2023-04-26 16:15:46 +08:00
    自己做个带录音的拨号器,替换为默认拨号器就可以了
    Ashore
        17
    Ashore  
    OP
       2023-04-26 16:20:59 +08:00
    @96 不会安卓原生开发啊。。。没招了
    Ashore
        18
    Ashore  
    OP
       2023-04-26 16:22:05 +08:00
    @cnbatch
    @flasktest1 #13&#14 劝老板换手机比写代码简单多了 不行这功能就不做了
    zhouhuade
        19
    zhouhuade  
       2023-04-26 16:48:25 +08:00
    新 Android 有隐私要求,不允许这么干了
    国内机在系统级利用包名检测,给部分 app 开了后门才能录的

    你能拿到系统级权限才能突破
    winterx
        20
    winterx  
       2023-04-26 16:58:38 +08:00
    三家运营商都有通化录音解决方案,可以在云端实现录音
    wanwaneryide
        21
    wanwaneryide  
       2023-04-26 17:01:15 +08:00
    使用手机的自动录音吧,稳定的一批。然后解析录音文件的文件名,文件名其中有号码 来去电时间,读取录音文件和通话记录做匹配,然后自动上传记录和录音就行了。然后就做国产手机的几个主流手机厂就行了。至于手动关闭录音、删除通话录音和记录,那不是技术问题,是行政管理的事了
    Andrue
        22
    Andrue  
       2023-04-26 17:04:11 +08:00
    谷歌的拨号器内置了通话录音功能,只是非认证设备没有显示,如果设备取得 root 权限去改一下配置文件就能启用了,快速操作请用
    https://github.com/jacopotediosi/GoogleDialerMod
    shwnpol
        23
    shwnpol  
       2023-04-26 17:10:28 +08:00
    lineageOS 自带这个功能,可以去看看他们的代码?
    lakehylia
        24
    lakehylia  
       2023-04-26 17:43:46 +08:00
    直接让销售打开手机录音功能啊,或者给销售派发带手机录音功能的手机
    pkoukk
        25
    pkoukk  
       2023-04-26 18:13:40 +08:00
    给老板安利一下中间号,就是运营商提供的号码反代
    既能保证所有通话都被录音
    也能保证销售无法获得客户的实际手机号,或者客户不能拿到销售的实际手机号
    lower
        26
    lower  
       2023-04-26 18:58:17 +08:00   1
    @pkoukk 赞同,这才是主流的方案 还能防止销售号码被拉黑
    alfchin
        27
    alfchin  
       2023-04-26 19:02:16 +08:00 via Android
    上面说安卓 13 不能用的录音的,可以下一个 cube acr ,安排的明明白白的
    x2009again
        28
    x2009again  
       2023-04-26 19:24:12 +08:00
    @pkoukk #25 反代,哈哈,华为叫虚拟号,录音文件好像要自己下载保存,服务器只存放一周左右的,服务器定时取文件就好了
    efaun
        29
    efaun  
       2023-04-26 19:37:09 +08:00
    按理说应该上话务台的
    SeanTo
        30
    SeanTo  
       2023-04-27 00:19:30 +08:00 via Android
    应该是可以的,下面这个录屏软件,录音可以选择声音来源为内部声音。在 pixel 3 原生 Android 12 上无外放能正常录音。我手机是 root 了,但这款 app 并不需要 root 权限。它只请求相机,麦克,和文件存储权限。肯定是有方法 4 。

    https://play.google.com/store/apps/details?id=com.kimcy929.screenrecorder
    wingch
        31
    wingch  
       2023-04-27 07:18:01 +08:00
    可以的 iflybuds 耳,Android iOS 也能用 直接耳音系限制
    但不可以自己功能
    Ashore
        32
    Ashore  
    OP
       2023-04-27 09:08:43 +08:00
    @zhouhuade
    @wanwaneryide
    @winterx 不搞了 直接和老板说了搞不定
    @pkoukk 给老板科看了 老板说没必要

    @alfchin 我试了下 好像也不能进行通话录音
    wanwaneryide
        33
    wanwaneryide  
       2023-04-27 09:54:33 +08:00
    @Ashore 还有一种办法就是买定制的手机,好像是红米手机刷系统后定制的手机,录音、微信监控啥的都是系统服务了。相关都关不了
    TnTZard
        34
    TnTZard  
       2023-05-29 16:19:38 +08:00
    @Ashore 是的
    nairty
        35
    nairty  
       315 天前
    其实通话录音现在还是能做到的。可以看下 google play 上就有相关的应用,例如 cube acr 。 大概了解了下猜测他们应该是通过 C 层的代码绕过了 libmedia.so 的加载限制。直接调用的里边的 AudioRecord.cpp 类。具体绕过方式可能是重写 dlopen 之类的。这个肯定就看不到了,毕竟人家靠这个赚钱呢。
    nairty
        36
    nairty  
       315 天前
    哦另外还有一种方案就是获取 Accessiblilty service 的那个权限,然后识别通话界面,既然大部分厂商都有通话录音按钮了,你就识别到按钮之后模拟点击,挂断之后再去获取录音文件。
    Ashore
        37
    Ashore  
    OP
       314 天前 via Android
    @nairty 感谢大佬的回复,现在公司都已经倒闭了,哈哈哈这个需求也就用不上了
    nairty
        38
    nairty  
       243 天前
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3384 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 10:44 PVG 18:44 LAX 02:44 JFK 05:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86