2016-06-14 15 views
0

pjsua2.Iを使用してAndroidアプリケーションを開発していますが、インターネットに接続しているときに電話をかけてすべてを実行できますが、インターネット接続が失われ、サーバーとの間で確立されていません。表示されたログを確認すると、Sipは登録されていません。インターネット接続が再確立された後でも。 間違いが何であるかを見つけるには何か助けてください?pjsua2インターネット接続が切断されて接続されたときに問題が発生する

ありがとうございました

答えて

0

接続の問題で実行したときと同じ動作が見つかりました。私は、インターネットの状態が変更されたときに検出するandroid.net.conn.CONNECTIVITY_CHANGEへの登録終了し、新しいstatus.Bellowを検出するための方法を使用すると、メソッドのための私の実装できました:

public enum InternetStatus { WIFI, MOBILE, ROAMING, NO_INTERNET, UNKNOWN }; 

/** 
* Get the internet status of the phone. The possible values are : 
*  +Not connected 
*  +Connected through WiFi 
*  +Connected to Mobile Carrier 
*  +Connected on Roaming 
* @param context Context under which the app is running 
* @return Returns the internet status as an enum value 
*/ 
public static InternetStatus getInternetStatus(Context context) 
{ 
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
    if (activeNetwork != null) { // connected to the internet 
     if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) { 

      // connected to wifi 
      //Toast.makeText(context, activeNetwork.getTypeName(), Toast.LENGTH_SHORT).show(); 
      return InternetStatus.WIFI; 
     } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) { 
      // connected to the mobile provider's data plan 
      if(activeNetwork.isRoaming()) { 
       //Toast.makeText(context, activeNetwork.getTypeName() + " Roaming", Toast.LENGTH_SHORT).show(); // roaming 
       return InternetStatus.ROAMING; 
      } 
      else { 
       //Toast.makeText(context, activeNetwork.getTypeName() + " NOT Roaming", Toast.LENGTH_SHORT).show(); 
       return InternetStatus.MOBILE; 
      } 
     } 
    } else { 
     // not connected to the internet 
     //Toast.makeText(context," NO Internet", Toast.LENGTH_SHORT).show(); 
     return InternetStatus.NO_INTERNET; 
    } 

    return InternetStatus.UNKNOWN; 
} 

あなたがインターネット接続を取得したら、あなたがアクセスする必要がありますSIPアカウントクラスとコール

sipAccount.setRegistration(true); 

これにより、ライブラリが登録メッセージをもう一度送信し、すべてが正しく機能するはずです。

希望します。

+0

私は同じことをしました。これはあなたが通話していない場合に機能します。通話中の場合、これは機能しません。これは、通話が再接続しないことを意味します。任意の提案を大いに感謝します。 – Vinay

関連する問題