1

我正在尝试为我的 Android 手机编写一个类似于 Google Voice 的服务:它会拦截拨出的电话,用我从网络请求中查找的号码替换最初拨打的号码。

我知道可以使用请求Intent.ACTION_NEW_OUTGOING_CALL广播的 BroadcastReceiver 转移传出呼叫,如此处的 android 源代码所示:

https://android.googlesource.com/platform/packages/apps/Phone/+/gingerbread-release/src/com/android/phone/ProcessOutgoingCallTest.java

我的问题是,我如何礼貌地执行一项长期运行的任务,例如查找setResultData(...);使用网络请求的号码?

Google Voice 以某种方式执行此请求。如何?他们是否取消原来的拨出电话并使用自定义的 InCallScreen Activity?我不这么认为,因为使用 Google Voice 时的通话中 UI 与手机的 UI 匹配(我在 Cliq、MT3G 和 Droid 上尝试过)。

4

1 回答 1

0

我通过确实取消原来的拨出电话、发出网络请求(同时显示我自己的“请稍候”对话框活动),然后创建另一个拨出电话来解决这个问题。

不过,我对其他解决方案持开放态度。

于 2010-09-20T18:27:52.753 回答