本文是以广播的方式监听系统传来的广播,然后检测是否手机有网络链接,当然,这是比价粗略的判断方式,没有给不同网络细分粒度。
public class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
ConnectivityManager connectMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) { //没有网络连接时
Builder builder = new Builder(MainActivity.this);
builder.setTitle("友情提示");
builder.setMessage("請設置好網絡");
builder.setPositiveButton("退出",
new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
MainActivity.this.finish();
}
});
builder.setNeutralButton("設置",
new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
Intent wifiSettingsIntent = new Intent("android.settings.SETTINGS");
startActivity(wifiSettingsIntent);
MainActivity.this.finish();
}
});
builder.setCancelable(false);
builder.create();
builder.show();
// System.out.println("网络无连接");
}else {
// System.out.println("网络已连接");
}
}
}
要使用以上代码还需在oncreate中注册,在ondestroy中取消注册:代码如下
protected void onDestroy() {
if (myBroadReceiver != null) {
unregisterReceiver(myBroadReceiver);
}
super.onDestroy();
}
oncreate中
//注册广播,监听网络是否正常
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(myBroadReceiver, intentFilter);