广播接受者判断网络连接状态
2016-08-30 22:49
330 查看
需求:网络连接分三种状态:无网络、移动数据、WIFI
public class ConnectionChangeReceiver extends BroadcastReceiver { private AlertDialog alertDialog; //标记的作用是为了避免对话框弹出多次 private boolean isConnect = false;//标记是否连接 private boolean isGPRS = false;//标记连接方式是移动网络 private boolean isWifi = false;//标记连接方式是wifi @Override public void onReceive(final Context context, Intent intent) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Service.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cm.getActiveNetworkInfo(); //无网络状态 if(networkInfo == null || !networkInfo.isConnected()){ if(isConnect){ alertDialog = new AlertDialog(context).builder(); alertDialog.setTitle("已关闭移动数据"); alertDialog.setMsg("您可以在“设置”中为此应用打开移动数据。"); alertDialog.setPositiveButton("好", new View.OnClickListener() { @Override public void onClick(View v) { } }); alertDialog.setNegativeButton("设置", new View.OnClickListener() { @Override public void onClick(View v) { context.startActivity(new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)); } }); LogHelp.i("dialog","dialog1"); isGPRS = false; isWifi = false; isConnect = false; alertDialog.show(); } }else if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { if(!isGPRS){ //只有GPRS,没有wifi的状态 alertDialog = new AlertDialog(context).builder(); alertDialog.setTitle("流量使用提示"); alertDialog.setMsg("当前网络无Wi-Fi,继续播放可能会被运营商收取流量费用"); alertDialog.setPositiveButton("继续播放", new View.OnClickListener() { @Override public void onClick(View v) { } }); alertDialog.setNegativeButton("停止播放", new View.OnClickListener() { @Override public void onClick(View v) { } }); LogHelp.i("dialog", "dialog2"); isWifi = false; isGPRS = true; isConnect = true; alertDialog.show(); } }else if(networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI){ if(!isWifi){ LogHelp.i("dialog", "dialog3"); isGPRS = false; isConnect = true; isWifi = true; } } } }
相关文章推荐
- 用广播的方式,动态判断网络连接状态
- 判断网络连接状态
- 网络判断网络连接有多种办法,通过C#程序也可以判断与远程主机的连接状态。具体实现方法
- 网络连接状态来判断,网线是不是被拔掉了
- 判断网络连接状态[C#]
- 用c#判断网络连接状态的例子(判断Internet连接还是断开)
- c#中如何判断已知网络的连接状态?
- Android: 判断网络连接状态及连接类型
- LabVIEW调用system32中的wininet.dll判断计算机网络连接状态
- 监听Package的安装和卸载、电源的连接和断开、网络状态改变广播、解锁广播、屏幕变亮变按广播
- 实时判断网络连接状态
- C#中判断系统的网络连接状态的方法
- C#中判断网络连接的状态
- C#判断网络连接状态
- NetworkReachable 使用[判断网络连接状态]
- 调用系统API判断网络连接状态
- [置顶] 判断Adndroid手机的网络连接状态
- 判断网络连接状态
- android --- 判断网络连接状态
- Android中判断网络连接状态