我要使用PhoneStateListener进行监听,如果我是从Viper或Skype发出VoIP呼叫或类似的东西,我想监听PhoneStateListener.LISTEN_DATA_ACTIVITY的监听器,但它无法正常工作。这是我的代码

public class VoIPDetectionActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        TelephonyManager obj =  (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
       PhoneStateListener listener1 = new PhoneStateListener(){
       @Override
      public void onDataActivity (int direction){
          String stateString = "N/A";
          switch (direction) {
        case TelephonyManager.DATA_ACTIVITY_NONE:
          stateString = "Idle";
          break;
        case TelephonyManager.DATA_ACTIVITY_IN:
          stateString = "Off Hook";
          break;
        case TelephonyManager.DATA_ACTIVITY_INOUT:
          stateString = "Ringing";
          break;
        case TelephonyManager.DATA_ACTIVITY_OUT:
            stateString = "Ringing";
            break;
          }
       }
       };



       // Register the listener with the telephony manager
       obj.listen(listener1, PhoneStateListener.LISTEN_DATA_ACTIVITY);
      }


我要得到TelephonyManager.DATA_ACTIVITY_NONE而不是别人,有人可以帮助我吗?提前致谢

最佳答案

有些原因可能不起作用。 Voip在大多数情况下都是通过wifi发生的,根据文档,PhoneStateListener.LISTEN_DATA_ACTIVITY仅适用于蜂窝网络。另外,我不确定Viper,但skype使用它自己的Voip协议在混音中另加了一把扳手。

一种可能的解决方案是轮询AudioManager的通信模式。

这是显示有人设置此链接的链接。

How implement the VOIP application using android.net.rtp package

关于android - 如何使VoIP通话使用PhoneStateListener,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10895245/

10-13 08:17