获取当前网络信息,状态,以及ping网址
2017-07-21 13:34
609 查看
一、前言
Android开发中,经常会涉及到手机网络的状态。二、内容
首先需要在AndroidManifest.xml文件中加上访问网络的权限:<!--允许程序打开网络套接字--> <uses-permission android:name="android.permission.INTERNET" />
1.判断当前有无网络连接:
public static boolean hasNetwork(Context var0) { if (var0 != null) { // 获取网络管理者 ConnectivityManager var1 = (ConnectivityManager) var0.getSystemService("connectivity"); NetworkInfo var2 = var1.getActiveNetworkInfo(); return var2 != null ? var2.isAvailable() : false; } else { return false; } }
2.判断是否有WIFI连接:
public static boolean isWifiConnection(Context var0) { ConnectivityManager var1 = (ConnectivityManager) var0.getSystemService("connectivity"); NetworkInfo var2 = var1.getNetworkInfo(1); if (var2 != null && var2.isAvailable() && var2.isConnected()) { Log.d("net", "wifi is connected"); return true; } else { return false; } }
3.判断是否有移动网络连接:
public static boolean isMobileConnection(Context var0) { ConnectivityManager var1 = (ConnectivityManager) var0.getSystemService("connectivity"); NetworkInfo var2 = var1.getNetworkInfo(0); if (var2 != null && var2.isAvailable() && var2.isConnected()) { return true; } else { return false; } }
4.获取WiFi名称:
public static String getWiFiSSID(Context var0) { ConnectivityManager var1 = (ConnectivityManager) var0.getSystemService("connectivity"); NetworkInfo var2 = var1.getNetworkInfo(1); WifiManager var3 = (WifiManager) var0.getSystemService("wifi"); WifiInfo var4 = var3.getConnectionInfo(); return var4.getSSID(); }
5.获取当前网络状态的类型:
public static String getNetworkType(Context var0) { ConnectivityManager var1 = (ConnectivityManager) var0.getSystemService("connectivity"); NetworkInfo var2 = var1.getActiveNetworkInfo(); if (var2 != null && var2.isAvailable()) { int var3 = var2.getType(); if (Build.VERSION.SDK_INT >= 13 && var3 == 9) { return "ETHERNET"; } else if (var3 == 1) { return "WIFI"; } else { TelephonyManager var4 = (TelephonyManager) var0 .getSystemService("phone"); switch (var4.getNetworkType()) { case 1: case 2: case 4: case 7: case 11: return "2G"; case 3: case 5: case 6: case 8: case 9: case 10: case 12: case 14: case 15: return "3G"; case 13: return "4G"; default: return "unkonw network"; } } } else { return "no network"; } }
6.移动端ping 网址:
public static boolean Ping(String str) { boolean result = false; Process p; try { p = Runtime.getRuntime().exec("/system/bin/ping -c 3 -w 5 " + str);//其中:-c 3是指ping 3次 ,-w 5 指超时时间为5秒 int status = p.waitFor(); InputStream input = p.getInputStream(); BufferedReader in = new BufferedReader(new InputStreamReader(input)); StringBuffer buffer = new StringBuffer(); String line = ""; while ((line = in.readLine()) != null) { buffer.append(line); } in.close(); input.close(); if (status == 0) { result = true; } else { result = false; } } catch (Exception e) { e.printStackTrace(); } return result; }
相关文章推荐
- 切换导航标签实现当前标签颜色改变以及利用js如何准确获取当前页面url网址信息
- iOS-获取当前设备的信息,网络状态,运营商,设备震动.获取设备信息
- Android获取当前的网络连接信息和网络链接状态 GPRS 和 WiFi网络
- 获得当前系统语言以及获取当前网络状态的类型
- js如何准确获取当前页面url网址信息
- iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G) by徐文棋
- Unity3d检测当前网络环境wifi/3G/4G,以及对服务器的Ping操作
- 通过广播方式获取当前网络类型,如果是Wifi,获取对应的信息(附加有root之后可实现保存的无线网名称及密码获取)
- 【Java】【系统状态】获取系统信息(包括操作系统、jvm、cpu、内存、硬盘、网络、io等)
- 如何用js得到当前页面的url信息方法(JS获取当前网址信息)
- WindowsPhone8 自动获取 ip 以及 当前所在城市信息
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第六节 获取当前UDP连接情况
- android 判断网络连接、sim卡信息以及ping操作是否网络连接正常
- 针对不同数据库,获取当前用户所有有权限查看的表,以及表的创建时间、更新时间、注释等信息,表中字段的相关信息(包含分页实现)
- 如何用js得到当前页面的url信息方法(JS获取当前网址信息)
- js获取当前页面的url网址信息
- 如何用js得到当前页面的url信息方法(JS获取当前网址信息)
- 如何用js得到当前页面的url信息方法(JS获取当前网址信息)
- Android端如何获取手机当前的网络状态,比如wifi还是3G, 还是2G, 电信还是联通,还是移动
- JS 如何准确获取当前页面URL网址信息