我使用以下代码检查网络可用性,同时点击远程服务或访问任何网页,因为我会在每次点击Web服务之前调用此方法,但我需要任何监视器定期监视Web服务背景和投掷警报网络不可用,如果网络恢复它网络恢复警报网络,我不知道如何实现它。
public boolean isOnline(Context context)
{
boolean state=false;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null) {
state=wifiNetwork.isConnectedOrConnecting();
}
NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobileNetwork != null) {
state=mobileNetwork.isConnectedOrConnecting();
}
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null) {
state=activeNetwork.isConnectedOrConnecting();
}
return state;
}
答案 0 :(得分:2)
为此您需要实现广播接收器,它将检查后台的网络连接,并在网络连接时发出警报。
请尝试以下代码。
1)制作一个可以扩展brodcast接收器的课程。
public class CheckInternetConnectionChangeReceiver extends BroadcastReceiver
{
public static boolean connectionStatus = false;
@Override
public void onReceive(Context context, Intent intent)
{
connectionStatus = CheckInternetConnection(context);
if(connectionStatus)
Toast.makeText(context, "Internet Connection Available", Toast.LENGTH_LONG).show();
else
Toast.makeText(context, "Internet Connection Not Available", Toast.LENGTH_LONG).show();
}
public boolean CheckInternetConnection(Context context)
{
ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isConnected())
{
return true;
}
else if (!mobile.isConnected())
{
return false;
}
else if (mobile.isConnected())
{
return true;
}
return false;
}
}
//这里connectionStatus是一个布尔变量,它根据网络存储true或false值。如果它可用,它将存储真值,否则它将存储假值。
现在将以下代码粘贴到您的Android清单文件中。
<receiver android:name=".CheckInternetConnectionChangeReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
现在,当连接更改时,它将调用brodcast接收器并将适当的值存储在connnectionStatus变量中。
答案 1 :(得分:1)