Android中判断连接的网络是否可用以及是否连接网络

编程入门 行业动态 更新时间:2024-10-09 15:14:47

Android中判断连接的<a href=https://www.elefans.com/category/jswz/34/1771439.html style=网络是否可用以及是否连接网络"/>

Android中判断连接的网络是否可用以及是否连接网络

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

判断是否有网络连接,但是如果该连接的网络无法上网,也会返回true

    public static boolean isNetworkConnected(Context context) {if (context != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();if (mNetworkInfo != null) {//这种方法也可以//return mNetworkInfo .getState()== NetworkInfo.State.CONNECTEDreturn mNetworkInfo.isAvailable();}}return false;}

当有网络连接时,如果想要检测当前连接的网络能否上网,需要能否打开网址来做判断,涉及到网络的在子线程里面执行

<uses-permission android:name="android.permission.INTERNET" />/*** 在子线程里开启该方法,可检测当前网络是否能打开网页* true是可以上网,false是不能上网*/public static boolean isOnline() {URL url;try {url = new URL("");InputStream stream = url.openStream();return true;} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return false;}

ping一个外网也可以起到同样的效果,要加网络权限,同样涉及到网络的在子线程里面执行

<uses-permission android:name="android.permission.INTERNET" />//判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网)public static final boolean ping() {String result = null;try {String ip = "www.baidu";// ping 的地址,可以换成任何一种可靠的外网 Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping网址3次 //读取ping的内容,可以不加 InputStream input = p.getInputStream();BufferedReader in = new BufferedReader(new InputStreamReader(input));StringBuffer stringBuffer = new StringBuffer();String content = "";while ((content = in.readLine()) != null) {stringBuffer.append(content);}Log.d("------ping-----", "result content : " + stringBuffer.toString());// ping的状态 int status = p.waitFor();if (status == 0) {result = "success";return true;} else {result = "failed";}} catch (IOException e) {result = "IOException";} catch (InterruptedException e) {result = "InterruptedException";} finally {Log.d("----result---", "result = " + result);}return false;}

转载于:

更多推荐

Android中判断连接的网络是否可用以及是否连接网络

本文发布于:2024-02-27 17:41:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1707593.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:网络   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!