Android 取代标准安卓拨号器-狗追尾巴

Android 取代标准安卓拨号器-狗追尾巴,android,android-intent,phone-call,telephonymanager,Android,Android Intent,Phone Call,Telephonymanager,问题似乎很简单-提供您自己的应用程序,截取拨号命令,然后自己拨号(想象一下,如果连接了VoIP应用程序,则会拨打VoIP电话,如果未连接,则使用手机的蜂窝功能拨打电话) 此线程提供您所需的所有信息-除了有一点小故障: 并非每个应用程序都使用相同的意图。我认为Intent.ACTION\u拨号必须是推荐的标准选项,而且可以肯定的是,大多数应用都会这样做。然后是Intent.ACTION\u CALL\u按钮,这似乎有点奇怪(我的S3告诉我它一开始没有处理此操作的应用程序),最后是Intent.AC

问题似乎很简单-提供您自己的应用程序,截取拨号命令,然后自己拨号(想象一下,如果连接了VoIP应用程序,则会拨打VoIP电话,如果未连接,则使用手机的蜂窝功能拨打电话)

此线程提供您所需的所有信息-除了有一点小故障:

并非每个应用程序都使用相同的意图。我认为Intent.ACTION\u拨号必须是推荐的标准选项,而且可以肯定的是,大多数应用都会这样做。然后是Intent.ACTION\u CALL\u按钮,这似乎有点奇怪(我的S3告诉我它一开始没有处理此操作的应用程序),最后是Intent.ACTION\u CALL\u特权

通过一点尝试和错误,我发现“本机”应用程序(我会调用本机调用日志并联系本机应用程序)似乎使用Intent.ACTION\u call\u PRIVILEGED,而其他应用程序使用Intent\u ACTION\u call。这就是问题所在。。。如果您同时注册了这两个操作,那么您肯定可以捕获每个拨号命令,但接下来如何处理它呢?这两种操作都不能激发意图,因为这只会产生一个无限循环,没有较低级别的操作,而且TelephonyManager明显错过了makeCall方法。
由于您无法动态注册和注销意向过滤器,是否有解决方案可供这只狗追逐它的尾巴?

更糟糕的是,即使您的应用程序在某些手机上具有相应的权限,也不能使用ACTION\u CALL\u PRIVILEGED(在Galaxy Nexus和Nexus 4上尝试过但失败):(