精华内容
下载资源
问答
  • android 检测网络状态

    热门讨论 2012-05-29 11:19:18
    android 检测网络状态 android 检测网络状态
  • 主要为大家详细介绍了Android检查网络状态工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 用户手机当前网络可用:WIFI、2G/3G网络,...检测当前网络是否可用,代码如下:/*** 检测当的网络(WLAN、3G/2G)状态* @param context Context* @return true 表示网络可用*/public static boolean isNetworkAvaila...

    用户手机当前网络可用:WIFI、2G/3G网络,用户打开与不打开网络,和是否可以用是两码事。可以使用指的是:用户打开网络了并且可以连上互联网进行上网。

    检测当前网络是否可用,代码如下:

    /**

    * 检测当的网络(WLAN、3G/2G)状态

    * @param context Context

    * @return true 表示网络可用

    */

    public static boolean isNetworkAvailable(Context context) {

    ConnectivityManager connectivity = (ConnectivityManager) context

    .getSystemService(Context.CONNECTIVITY_SERVICE);

    if (connectivity != null) {

    NetworkInfo info = connectivity.getActiveNetworkInfo();

    if (info != null && info.isConnected())

    {

    // 当前网络是连接的

    if (info.getState() == NetworkInfo.State.CONNECTED)

    {

    // 当前所连接的网络可用

    return true;

    }

    }

    }

    return false;

    }

    在AndroidManifest.xml文件添加的权限:

    展开全文
  • android 检测网络状况

    2015-06-24 19:19:37
    android开发中,很多时候我们都需要网络交互数据。但在这之前,我们一般会判断网络,这样一方面能使代码更合理,避免无谓的网络访问,另一方面我们可以给用户一个友好的提示,让用户知道网络不通,一些操作无法...

    一.编写目的

                       在android开发中,很多时候我们都需要网络交互数据。但在这之前,我们一般会判断网络,这样一方面能使代码更合理,避免无谓的网络访问,另一方面我们可以给用户一个友好的提示,让用户知道网络不通,一些操作无法进行下去。当然还有些做网络测试程序的时候也能用的到。

    二.判断网络状况

    2.1 利用android原生api中的方法来判断

    2.1.1 加入权限

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

    2.1.2 获取是否有本地网络

    	public static boolean IsHaveInternet(final Context context) {
    		try {
    			ConnectivityManager manger = (ConnectivityManager) context
    					.getSystemService(Context.CONNECTIVITY_SERVICE);
    			NetworkInfo info = manger.getActiveNetworkInfo();
    			Log.e("info;", info + "..");
    			
    			return (info != null);
    		} catch (Exception e) {
    			return false;
    		}
    	}

    2.1.3 优缺点

               优点:这样能很快很方便的判断是否有本地网络。缺点:这样虽然判断设备有本地网络,但本地网络是否有效,是否能连接目标网络,这些就无法判断了。

    2.2 利用http连接来判断网络状况

    2.2.1 添加网络权限

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

    2.2.2 判断是否有网络连接

    public static boolean isConnect(Context context) {
    		// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
    		try {
    			HttpClient client = new DefaultHttpClient();
    			HttpGet get = new HttpGet("http://www.baidu.com");
    			HttpResponse response = client.execute(get);
    			if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    				return true;
    			}
    		} catch (Exception e) {
    			Log.v("error", e.toString());
    		}
    		return false;
    	}

    我例子中是用的百度来测试外网是否通畅,如果服务器是内场中使用,使用wifi局域网的话,用百度网址来判断就不太靠谱了,这个时候就需要使用apk正在使用的服务器地址来判断了,呵呵。

    2.2.3 优缺点

                 优点:这样能判断外网是否通畅。缺点:也必须一次网络请求。

    2.3 使用ping来测试网络

    2.3.1 添加网络权限

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

    2.3.2 判断ping目标网络是否成功

    	public String Ping(String str) {
    		String result = "";// ping的结果
    		Process p;
    		try {
    			// ping -c 2 -w 100 中 ,-c 是指ping的次数 3是指ping 2次 ,-w 30
    			// 以秒为单位指定超时间隔,是指超时时间为30秒
    			p = Runtime.getRuntime().exec("ping -c 2 -w 30 " + str);
    			int status = p.waitFor();// 等待响应码
    			InputStream input = p.getInputStream();
    			BufferedReader in = new BufferedReader(new InputStreamReader(input));
    			final StringBuffer buffer = new StringBuffer();
    			String line = "";
    			while ((line = in.readLine()) != null) {
    				buffer.append(line + "\n\r");
    			}
    			if (status == 0) {
    				buffer.append("\n\r " + "success");
    			} else {
    				buffer.append("\n\r " + "faild");
    			}
    			result = buffer.toString();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    		return result;
    	}

    我这边返回的是ping的具体内容,如果只是要判断网络是否通畅,用status判断就行了。

    2.3.3 优缺点:

             优点:判断网络很方便。缺点:虽然也有网络请求,但这是这也是必须的。

    三.总结

               以上介绍了几种判断网络的方法,有些大家可能比较陌生,有些大家比较熟悉。但有一句话说的好,不管是白猫,还是黑猫,抓的住老鼠就是好猫。总之选择最对的方法就是最好的方法。


    展开全文
  • Android检测网络状况

    2015-11-05 20:11:38
    功能:当网络不可用时Toast提示。

    功能:当网络不可用时Toast提示。

    使用步骤:
    1、注册权限

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

    2、编写NetworkStatusReceiver 类继承 BroadcastReceiver 复写 onReceive方法

    package receiver;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.widget.Toast;
    
    /**
     * 检测网络状况广播接收者
     * @author chenql
     */
    public class NetworkStatusReceiver extends BroadcastReceiver {
    
        private ConnectivityManager connectivityManager;
        private NetworkInfo networkInfo;
    
        @Override
        public void onReceive(Context context, Intent intent) {
    
            connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            networkInfo = connectivityManager.getActiveNetworkInfo();
    
            if (networkInfo == null || !(networkInfo.isAvailable())) {
                // 网络不可用时提示
                Toast.makeText(context, "network is unavailable", Toast.LENGTH_SHORT).show();
            }
        }
    }

    3、在基类的 onCreate()方法中注册(这样所有继承基类的activity都会监听,也可以根据实际需要,包装到基类的一个方法中,由子类决定是否调用以监听网络状况。)

    IntentFilter intentFilter = new IntentFilter();
    // 添加监听网络状况的action
    intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); 
    NetworkStatusReceiver networkStatusReceiver = new NetworkStatusReceiver();
    registerReceiver(networkStatusReceiver, intentFilter);

    4、在基类的onDestroy()方法中取消注册(如果依照上述操作在子类中调用注册广播的方法,则在基类的onDestroy()方法中取消注册前还应当判断对应的广播接收者networkStatusReceiver是否为空。)

        @Override
        protected void onDestroy() {
            super.onDestroy();
    
            if (networkStatusReceiver != null) {
                unregisterReceiver(networkStatusReceiver);
            }
        }
    展开全文
  • android检查网络状态

    2015-11-11 10:06:47
    检查网络状态在每个应用中都会用到的: public static void checkNetWorkConnect(Context context) { if (null != context) { //ConnectivityManager 主要管理网络连接的相关操作 ConnectivityManager manager =...

    检查网络状态在每个应用中都会用到的:

    public static void checkNetWorkConnect(Context context) {
            if (null != context) {
    
                //ConnectivityManager 主要管理网络连接的相关操作
                ConnectivityManager manager = (ConnectivityManager) context
                        .getApplicationContext().getSystemService(
                                Context.CONNECTIVITY_SERVICE);
    
    
                NetworkInfo networkinfo = manager.getActiveNetworkInfo();
    
                if (networkinfo == null || !networkinfo.isAvailable()) {
                    //无网络
                    Toast.makeText(context,context.getResources().getString(R.string.nowifi)  , 0).show();
                } else {
                    //网络类型
                    switch (networkinfo.getType()) {
                    case 1:
                        //wifi
                        break;
                    case 0:
                        //数据流量
                        break;
                    default:
                        break;
                    }
    
                }
            }
        }
    展开全文
  • android检测网络状态

    千次阅读 2010-08-25 18:51:00
    android中提供有一个类:android.net.ConnectivityManager 可以检测网络状态 起对象的实例化为:Context.getSystemService(Context.CONNECTIVITY_SERVICE). 譬如检测网络是否可用   <br ...
  • Android获取网络状态学习自Overview在做Android app的时候,网络的状态可能会经常的变化,当用户当前没有网络的时候,我们要保证程序不崩溃,而在当用户使用流量的话,则需要确保,在进行耗流量的操作的时候,需要...
  • Android检测网络状态,判断当前网络是否可用 转载博客地址 http://blog.csdn.net/hejie322/article/details/8786402 用户手机当前网络可用:WIFI、2G/3G网络,用户打开与不打开网络,和是否可以用...
  • Android中开发具有网络交互的应用时候,有时候我们需要检查网络状态才能确定是否去请求网络,就需要用到公共类代码:package com.example.ldp.com.util;/*** Created by Administrator on 2017/4/7.*/import ...
  • android 检查网络状态

    千次阅读 2011-07-26 14:29:06
    package com.bingo.net; import android.app.Activity; import android.content.Context; import android.net.ConnectivityManager; import android.
  • Android检查网络状态步骤

    千次阅读 2016-06-15 17:51:42
    android 如何检查网络连接状态,是android开发中一个常见的问题。 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限: 1)判断是否有网络连接 public boolean isNetworkConnected(Context context) { ...
  • Carson带你学Android检测网络状态&监听网络变化

    万次阅读 多人点赞 2016-11-02 21:10:34
    今天,我将教大家如何进行网络状态检测和监听网络状态的变化 目录1. 检测网络状态1.1 实现思路 获得ConnectivityManager对象 ConnectivityManager主要用于查看网络状态和管理网络连接相关的操作获取...
  • 用户手机当前网络可用:WIFI、2G/3G网络,用户打开与不打开网络,和是否可以用是两码事。... * 检测当的网络(WLAN、3G/2G)状态 * @param context Context * @return true 表示网络可用 */ public static
  • 安卓Android源码——网络连接状态检测.zip
  • 安卓Android源码——网络连接状态检测.rar
  • 主要介绍了Android检查手机网络状态及网络类型的方法,涉及Android检测手机网络状态的技巧,需要的朋友可以参考下
  • android检查网络状态工具类

    千次阅读 2017-04-07 14:50:20
    Android中开发具有网络交互的应用时候,有时候我们需要检查网络状态才能确定是否去请求网络,就需要用到公共类package com.example.ldp.com.util; /** * Created by Administrator on 2017/4/7. */ import ...
  • 前言:在开发安卓移动端时,几乎每一个app都需要连接网络,因此,对设备的网络状态检测是很有必要的!比如:检测当前网络是否可用,当前可用的网络是属于WIFI还是MOBILE等等。实现步骤流程:1 .获取...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,057
精华内容 26,022
关键字:

安卓检测网络状态