广播接受者判断网络连接状态
状态 判断 广播 网络连接
2023-09-14 08:59:11 时间
需求:网络连接分三种状态:无网络、移动数据、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; } } } }
相关文章
- [1159]adb判断手机屏幕状态并点亮屏幕
- shell脚本案例-判断服务状态
- 链路状态路由协议 OSPF (二)
- (五)在组件中访问状态
- Typecho通过判断用户登陆状态,给文章加编辑按钮
- Nginx服务状态监控详解程序员
- MySQL Status Mysqlx_errors_unknown_message_type 数据库状态作用意思及如何正确
- MySQL Status Mysqlx_expect_close 数据库状态作用意思及如何正确
- 成功MySQL数据库连接状态确认(mysql判断是否连接)
- 状态Linux下线程退出状态的检测(linux判断线程退出)
- Linux下查看串口状态:快速掌握要点(linux下查看串口)
- 定Linux查看文件被锁定状态的方法(linux查看文件锁)
- 深入探索MongoDB集群状态,优化高可用性(mongodb集群状态)
- C语言编程检查MySQL运行状态(c mysql状态判断)
- 深入探究查询Redis运行状态(查询redis运行状态)
- 深入了解Redis如何判断它的状态(如何判断redis状态)
- 如何识别Redis异常状态(如何判断redis 异常)
- Oracle 12719 修复持续性中断状态问题(oracle 12719)
- URL重写及干掉ASP.NET试图状态的实现方法
- jquery无法设置checkbox选中即没有变成选中状态
- Android中监听判断网络连接状态的方法
- C#实现软件监控外部程序运行状态的方法