如何区分呼叫是移动呼叫还是IP呼叫?

时间:2019-08-30 10:09:03

标签: java android telephony android-audiomanager

我正在使用电话应用程序,因此需要检查呼叫是移动电话还是IP。这项检查是在拨入电话还是在进行中的电话都没关系。我正在使用WhatsApp和Skype测试IP呼叫。

我看到另一个回答说要使用此方法:

public boolean isVoip(Context context){
    AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    return manager.getMode() == AudioManager.MODE_IN_COMMUNICATION;
}

但是,manager.getMode() == AudioManager.MODE_IN_CALL既适用于移动电话,也适用于IP电话。

我还查看了TelephonyManager文档,并找到了getPhoneType()方法。

mTelephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);

但是mTelephonyManager.getPhoneType()返回TelephonyManager.PHONE_TYPE_GSM而不是TelephonyManager.PHONE_TYPE_SIP,即使在拨打/接听IP呼叫时,因此我认为getPhoneType()返回当前设备的电话类型。

0 个答案:

没有答案