2

iam を使用してPhoneStateListener、VoIP 通話が Viper や Skype などから行われたかどうかを聞きたいのですが、リスナーを実装して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いますが、他のものは取得していません。これで私を助けることができますか? 前もって感謝します

4

1 に答える 1

1

これが機能しない可能性があるいくつかの理由。ほとんどの場合、Voip は Wi-Fi 経由で発生しPhoneStateListener.LISTEN_DATA_ACTIVITY、ドキュメントによるとセルラーでのみ機能します。また、Viper についてはよくわかりませんが、skype は独自の Voip プロトコルを使用して、別のレンチをミックスに投入します。

考えられる解決策は、通信モードについて AudioManager をポーリングすることです。

これは、誰かがこれを設定していることを示すリンクです。

android.net.rtp パッケージを使用して VOIP アプリケーションを実装する方法

于 2012-11-06T22:11:46.933 に答える