如何判断软件程序是否联网 联网状态提示信息Android实现
程序员文章站
2024-03-01 20:50:28
在项目中,经常需要判断是否有网络连接。最近学习了如何判断软件是否联网,如果没有联网,弹出提示信息,连接网络。
效果:
(1)联网情况下:
(2)不联网...
在项目中,经常需要判断是否有网络连接。最近学习了如何判断软件是否联网,如果没有联网,弹出提示信息,连接网络。
效果:
(1)联网情况下:
(2)不联网情况下:
(3)点击“检测设置”:
源码下载:http://xiazai.jb51.net/201605/yuanma/myapplication(jb51.net).rar
判断我们的软件是否联网,看代码吧:
/** * 检测网络连接 * * @param con * @return */ public boolean isnetworkavailable(context con) { connectivitymanager cm = (connectivitymanager) con .getsystemservice(context.connectivity_service); if (cm == null) return false; networkinfo netinfo = cm.getactivenetworkinfo(); if (netinfo == null) { return false; } if (netinfo.isconnected()) { return true; } return false; }
如果没有联网,弹出提示框,提示设置网络连接:
/** * 提示设置网络连接对话框 * * @param context */ public void shownetdialog(final context context) { mmaterialdialog = new materialdialog(context) .setmessage("世界上最遥远的距离就是没网") .setpositivebutton("检查设置", new view.onclicklistener() { @override public void onclick(view v) { intent intent = null; try { @suppresswarnings("deprecation") string sdkversion = android.os.build.version.sdk; if (integer.valueof(sdkversion) > 10) { intent = new intent(android.provider.settings.action_wireless_settings); } else { intent = new intent(); componentname comp = new componentname("com.android.settings", "com.android.settings.wirelesssettings"); intent.setcomponent(comp); intent.setaction("android.intent.action.view"); } context.startactivity(intent); } catch (exception e) { e.printstacktrace(); } mmaterialdialog.dismiss(); } }).setnegativebutton("取消", new view.onclicklistener() { @override public void onclick(view v) { mmaterialdialog.dismiss(); } }); mmaterialdialog.show(); }
怎么做判断处理:
/** * 判断是否联网 */ private void checknet() { if(!mchecknetwork.isnetworkavailable(getapplication())){ mchecknetwork.shownetdialog(mainactivity.this); }else { toast.maketext(mainactivity.this, "有网络,哈哈",toast.length_short).show(); } }
具体代码如下:
mainactivity.java
package com.bzu.gxs.chectnetwork; import android.app.activity; import android.os.bundle; import android.view.view; import android.widget.button; import android.widget.toast; public class mainactivity extends activity implements view.onclicklistener{ private checknetwork mchecknetwork =new checknetwork(); private button btn_check; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); init(); } /** * 点击事件 * * @param view */ @override public void onclick(view view) { switch (view.getid()){ case r.id.btn_check: checknet(); } } /** * 判断是否联网 */ private void checknet() { if(!mchecknetwork.isnetworkavailable(getapplication())){ mchecknetwork.shownetdialog(mainactivity.this); }else { toast.maketext(mainactivity.this, "有网络,哈哈",toast.length_short).show(); } } /** * 初始化 */ private void init() { btn_check = (button) findviewbyid(r.id.btn_check); btn_check.setonclicklistener(this); } }
checknetwork.java
package com.bzu.gxs.chectnetwork; import android.content.componentname; import android.content.context; import android.content.intent; import android.media.browse.mediabrowser; import android.net.connectivitymanager; import android.net.networkinfo; import android.os.build; import android.view.view; import me.drakeet.materialdialog.materialdialog; /** * 网络检测 * created by gxs on 2016/5/13. */ public class checknetwork { private materialdialog mmaterialdialog; /** * 检测网络连接 * * @param con * @return */ public boolean isnetworkavailable(context con) { connectivitymanager cm = (connectivitymanager) con .getsystemservice(context.connectivity_service); if (cm == null) return false; networkinfo netinfo = cm.getactivenetworkinfo(); if (netinfo == null) { return false; } if (netinfo.isconnected()) { return true; } return false; } /** * 提示设置网络连接对话框 * * @param context */ public void shownetdialog(final context context) { mmaterialdialog = new materialdialog(context) .setmessage("世界上最遥远的距离就是没网") .setpositivebutton("检查设置", new view.onclicklistener() { @override public void onclick(view v) { intent intent = null; try { @suppresswarnings("deprecation") string sdkversion = android.os.build.version.sdk; if (integer.valueof(sdkversion) > 10) { intent = new intent(android.provider.settings.action_wireless_settings); } else { intent = new intent(); componentname comp = new componentname("com.android.settings", "com.android.settings.wirelesssettings"); intent.setcomponent(comp); intent.setaction("android.intent.action.view"); } context.startactivity(intent); } catch (exception e) { e.printstacktrace(); } mmaterialdialog.dismiss(); } }).setnegativebutton("取消", new view.onclicklistener() { @override public void onclick(view v) { mmaterialdialog.dismiss(); } }); mmaterialdialog.show(); } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.bzu.gxs.chectnetwork.mainactivity"> <button android:id="@+id/btn_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试"/> </relativelayout>
注意:需要在清单文件androidmanifest.xml中加入
<uses-permission android:name="android.permission.access_network_state"/> <uses-permission android:name="android.permission.internet"/>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。