判断是否连接网络以及是否是局域网

阅读: 评论:0

判断是否连接网络以及是否是局域网

判断是否连接网络以及是否是局域网

 
    判断是否能上外网
       有时候我们连接上一个没有外网连接的WiFi或者需要输入账号和密码才能链接外网的网络,就会出现虽然网络可用,但是外网却不可以访问。针对这种情况,一般的解决办法就是ping一个外网,如果能ping通就说明可以真正上网,代码如下 * @author sichard     * @category 判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网)     * @return     */     public static final boolean ping() {             String result = null;         try {                 String ip = "www.baidu";// ping 的地址,可以换成任何一种可靠的外网                 Process p = Runtime().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 : " + String());                 // 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;


  • 判断能否联网以及判断联网的类型
    
         public static String GetNetworkType(){    String strNetworkType = "";        NetworkInfo networkInfo = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo();    if (networkInfo != null && networkInfo.isConnected())    {        if (Type() == ConnectivityManager.TYPE_WIFI)        {            strNetworkType = "WIFI";        }        else if (Type() == ConnectivityManager.TYPE_MOBILE)        {            String _strSubTypeName = SubtypeName();                        Log.e("cocos2d-x", "Network getSubtypeName : " + _strSubTypeName);                        // TD-SCDMA   networkType is 17            int networkType = Subtype();            switch (networkType) {                case TelephonyManager.NETWORK_TYPE_GPRS:                case TelephonyManager.NETWORK_TYPE_EDGE:                case TelephonyManager.NETWORK_TYPE_CDMA:                case TelephonyManager.NETWORK_TYPE_1xRTT:                case TelephonyManager.NETWORK_TYPE_IDEN: //api<8 : replace by 11                    strNetworkType = "2G";                    break;                case TelephonyManager.NETWORK_TYPE_UMTS:                case TelephonyManager.NETWORK_TYPE_EVDO_0:                case TelephonyManager.NETWORK_TYPE_EVDO_A:                case TelephonyManager.NETWORK_TYPE_HSDPA:                case TelephonyManager.NETWORK_TYPE_HSUPA:                case TelephonyManager.NETWORK_TYPE_HSPA:                case TelephonyManager.NETWORK_TYPE_EVDO_B: //api<9 : replace by 14                case TelephonyManager.NETWORK_TYPE_EHRPD:  //api<11 : replace by 12                case TelephonyManager.NETWORK_TYPE_HSPAP:  //api<13 : replace by 15                    strNetworkType = "3G";                    break;                case TelephonyManager.NETWORK_TYPE_LTE:    //api<11 : replace by 13                    strNetworkType = "4G";                    break;                default:                    //  中国移动 联通 电信 三种3G制式                    if (_strSubTypeName.equalsIgnoreCase("TD-SCDMA") || _strSubTypeName.equalsIgnoreCase("WCDMA") || _strSubTypeName.equalsIgnoreCase("CDMA2000"))                     {                        strNetworkType = "3G";                    }                    else                    {                        strNetworkType = _strSubTypeName;                    }                                        break;             }                         Log.e("cocos2d-x", "Network getSubtype : " + Integer.valueOf(networkType).toString());        }    }        Log.e("cocos2d-x", "Network Type : " + strNetworkType);        return strNetworkType;}

本文发布于:2024-01-28 17:45:38,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064351439154.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:局域网   判断是否   网络
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23