You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何替换外出呼叫号码?CallRedirectionService无法正常生效

解决CallRedirectionService重定向外呼号码失效问题

针对你继承CallRedirectionService实现外呼号码替换(重定向到911)但服务未生效的问题,可从以下关键环节排查修复:

1. 修正Uri格式错误

你当前直接用Uri.parse("911")生成的Uri缺少tel协议头,不符合电话呼叫的Uri规范,这会导致重定向失败。应改为:

handle = Uri.fromParts("tel", "911", null);

2. 确保服务在Manifest中正确注册

必须在AndroidManifest.xml中正确声明服务,指定对应的权限和Intent Filter,示例如下:

<service
    android:name=".RedirectionService"
    android:permission="android.permission.BIND_CALL_REDIRECTION_SERVICE">
    <intent-filter>
        <action android:name="android.telecom.CallRedirectionService" />
    </intent-filter>
</service>

3. 申请必要权限并成为默认电话应用

  • 申请权限:在Manifest中添加所需权限
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    
  • 成为默认电话应用:CallRedirectionService需要应用具备默认电话应用权限,可通过以下代码引导用户设置:
    Intent intent = new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER);
    intent.putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, getPackageName());
    startActivity(intent);
    

4. 检查系统限制

部分安卓系统对紧急号码(如911)的修改有额外限制,可先测试重定向到普通号码(如10086)验证服务是否正常工作,排除紧急号码的特殊限制影响。

另外,确保你的重定向逻辑没有其他分支干扰,当前代码中callShouldRedirect设为true的逻辑是正确的,重点修正上述几个环节即可。

内容的提问来源于stack exchange,提问作者Fred.hu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 16:13:24