2012-04-25 156 views
5

是否可以通过Android的SDK隐藏您拨打的号码?考虑一下:你希望打私人电话,但由于许多人阻止了私人电话号码,所以你不想使用*67。这是医生经常做的事情 - 他们从他们的手机拨打电话,但不希望患者拥有他们的私人电话号码。要通过虚拟号码拨打电话的Android

想象一下,我们正在为医生构建一个应用程序。该应用程序被给予联系人列表,点击联系人并进行呼叫,但以隐藏该电话的呼叫者ID的方式。例如,我有一个Google Voice号码与我的真实手机号码不同,我可以通过此号码接听电话。有没有办法通过Google语音以编程方式拨打电话?

我还可以在通话中注册一些事件监听器,以便在通话结束时应用程序知道它吗?

+0

有一个叫Slydial伟大的应用程序,可以用谨慎的电话给你不想知道你叫别人帮忙。我知道这与你的问题没有直接关系,但值得一试。 – Shades 2012-06-14 16:13:33

+0

感谢您指出这个有趣的应用程序。这是相关的,因为我认为你打电话的人只会看到呼叫者ID中的Slydial号码。 – Thorn 2012-06-15 17:53:49

+0

Slydial会将您直接发送到他们的语音信箱,但不会隐藏您的电话号码。但是,如果您拥有Google语音号码并获取适用于您手机的Google语音应用,则可以使用其设置从语音号码拨打Slydial呼叫;您的语音号码就是显示的号码,而不是您的手机。 – 2012-07-17 16:08:29

回答

2

您可以检查this link,它使用telephony api这个。请查看第15.1.3节Example: Determining the State of a Call

我也是在这里粘贴示例代码:

private class ListenToPhoneState extends PhoneStateListener { 

public void onCallStateChanged(int state, String incomingNumber) { 
    Log.i("telephony-example", "State changed: " + stateName(state)); 
} 

String stateName(int state) { 
    switch (state) { 
     case TelephonyManager.CALL_STATE_IDLE: return "Idle"; 
     case TelephonyManager.CALL_STATE_OFFHOOK: return "Off hook"; 
     case TelephonyManager.CALL_STATE_RINGING: return "Ringing"; 
    } 
    return Integer.toString(state); 
    } 
} 
+2

链接不再有效 – 2017-08-24 13:00:43