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谢谢! –