0
我正在製作一個VoIP客戶端,我想讓客戶端撥打上次連接4G時所說的電話號碼。如果用戶按下「結束呼叫」按鈕,它不會自動呼叫。它只發生在連接斷開的情況下,用戶不能按結束通話完成通話。有什麼辦法來檢查4g網絡是否穩定在Android上?
所以我有一個BroadcastReceiver
它告訴我,如果互聯網連接可用或不太好。 除了它告訴我太多。
手機的,我看到的行爲時,有沒有網絡和它從4G網絡的連通性,在BroadcastReceiver
onReceive(..)
方法引發約8倍,[連接,沒有連接,連接,連接不上,... , 連接的]。
以下是偵聽連接的代碼。
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
NetworkInfo an = cm.getActiveNetworkInfo();
if (an != null) {
// this method just decides if it is WIFI or fast network like
// 4G or HSPAP.
state = updateConnectionAvailability(context, an, tm);
// 1: 4G/HSPAP, 3: WIFI
if (state == 1 || state == 3) {
Toast.makeText(context, "Fast network available", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "Warning: Slow network available", Toast.LENGTH_SHORT).show();
}
if (mCCL != null) {
mCCL.onVoipAvailable();
}
} else {
Toast.makeText(context, "There is no Internet connection!", Toast.LENGTH_SHORT).show();
if (mCCL != null) {
mCCL.onVoipNotAvailable();
}
}
}
正如您可能已經注意到的,我創建了一個自定義監聽器mCCL。它只是通知與MainActivity的連接。但是再次,一旦建立4G,就有一系列的onVoipAvailable()
和onVoipNotAvailable()
。
我的目標是找出4G是否建立得相當好。它非常含糊,但我不能以不同的方式說出來。 :-(
我應該怎麼辦?
我肯定會試試這個,當我有機會,會確保給予反饋非常感謝您 –
它有些工作在某些方面,但它並不完美但是,我知道我們的情況下!可以有所不同,所以我會選擇這個答案:3謝謝! –