这个问题看起来很简单 - 提供你自己的应用程序拦截拨号命令,然后自己拨打它们(想象一下如果连接的VoIP应用程序发出VoIP呼叫,如果没有连接,则使用手机的蜂窝功能进行呼叫)。
这个帖子提供了你所需要的所有信息 - 除了有点小故障:
并非每个应用程序似乎都使用相同的意图。我认为Intent.ACTION_DIAL必须是推荐的标准选项,当然,大多数应用程序都是这样做的。然后是Intent.ACTION_CALL_BUTTON,这看起来很奇怪(我的S3告诉我它没有应用程序首先处理这个动作),最后是Intent.ACTION_CALL_PRIVILEGED。
做了一些试验和错误我认为“本机”应用程序(我称之为本机调用日志和联系应用程序本机)似乎使用Intent.ACTION_CALL_PRIVILEGED,而其余使用INTENT_ACTION_CALL。如果你注册了这两个动作,那么就可以了。但是你可以捕获每个拨号命令,但是你用它做什么呢?你无法使用这些操作中的任何一个触发意图,因为这只会让你无限循环,没有更低级别的操作,并且TelephonyManager明显错过了makeCall方法。 既然你无法动态注册和取消注册意图过滤器,那么这只狗是否有追逐其尾巴的解决方案?