接続の問題で実行したときと同じ動作が見つかりました。私は、インターネットの状態が変更されたときに検出する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);
これにより、ライブラリが登録メッセージをもう一度送信し、すべてが正しく機能するはずです。
希望します。
私は同じことをしました。これはあなたが通話していない場合に機能します。通話中の場合、これは機能しません。これは、通話が再接続しないことを意味します。任意の提案を大いに感謝します。 – Vinay