我正在尝试为我的 Android 手机编写一个类似于 Google Voice 的服务:它会拦截拨出的电话,用我从网络请求中查找的号码替换最初拨打的号码。
我知道可以使用请求Intent.ACTION_NEW_OUTGOING_CALL
广播的 BroadcastReceiver 转移传出呼叫,如此处的 android 源代码所示:
我的问题是,我如何礼貌地执行一项长期运行的任务,例如查找setResultData(...);
使用网络请求的号码?
Google Voice 以某种方式执行此请求。如何?他们是否取消原来的拨出电话并使用自定义的 InCallScreen Activity?我不这么认为,因为使用 Google Voice 时的通话中 UI 与手机的 UI 匹配(我在 Cliq、MT3G 和 Droid 上尝试过)。