Android网络判断知识小结_Android

Android中判断当前网络是否可用

应用场景:实现判断当前网络是否可用

当前有可用网络,如下图:

当前没有可用网络,如下图:

实现步骤:

1、获取ConnectivityManager对象

Context context = activity.getApplicationContext();
// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

2、获取NetworkInfo对象

// 获取NetworkInfo对象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

3、判断当前网络状态是否为连接状态

if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
{
   return true;
}

4、在AndroidManifest.xml中添加访问当前网络状态权限

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

代码如下:

public class ClassTestDemoActivity extends Activity
{
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    if (isNetworkAvailable(ClassTestDemoActivity.this))
    {
      Toast.makeText(getApplicationContext(), "当前有可用网络!", Toast.LENGTH_LONG).show();
    }
    else
    {
      Toast.makeText(getApplicationContext(), "当前没有可用网络!", Toast.LENGTH_LONG).show();
    }
  }
  /**
   * 检查当前网络是否可用
   *
   * @param context
   * @return
   */
  public boolean isNetworkAvailable(Activity activity)
  {
    Context context = activity.getApplicationContext();
    // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivityManager == null)
    {
      return false;
    }
    else
    {
      // 获取NetworkInfo对象
      NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
      if (networkInfo != null && networkInfo.length > 0)
      {
        for (int i = 0; i < networkInfo.length; i++)
        {
          System.out.println(i + "===状态===" + networkInfo[i].getState());
          System.out.println(i + "===类型===" + networkInfo[i].getTypeName());
          // 判断当前网络状态是否为连接状态
          if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
          {
            return true;
          }
        }
      }
    }
    return false;
  }
}

 控制台打印出的结果:

Android 关于判断应用是否有网络

在Android编程中不少有许多应用需要判断是否有网络的问题,现在我就来说说关于网络的问题吧,源码如下:

.java

 /**
   * 检查当前网络是否可用
   *
   * @param context
   * @return
   */
  public boolean isNetworkAvailable(Activity activity)
  {
    Context context = activity.getApplicationContext();
    // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivityManager == null)
    {
      return false;
    }
    else
    {
      // 获取NetworkInfo对象
      NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
      if (networkInfo != null && networkInfo.length > 0)
      {
        for (int i = 0; i < networkInfo.length; i++)
        {
          System.out.println(i + "===状态===" + networkInfo[i].getState());
          System.out.println(i + "===类型===" + networkInfo[i].getTypeName());
          // 判断当前网络状态是否为连接状态
          if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
          {
            return true;
          }
        }
      }
    }
    return false;
  }

在oncreate()方法中判断这个方法,具体代码如下:

.java

@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if(isNetworkAvailable(Maintivity.this){
 Toast.makeText(this, "当前有可用网络!", Toast.LENGTH_LONG).show();
 }else{
 Toast.makeText(this,"当前没有网络!",Toast.LENGTH_LONG).show();}
 }

 另外,还需要添加权限

<!-- 允许应用可以联网 -->
  <uses-permission android:name="android.permission.INTERNET" />
   <!--允许应用检查网络状况 -->
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android网络判断
android 判断网络状态、android 判断网络类型、android 网络判断、android网络连接判断、android 判断网络可用,以便于您获取更多的相关知识。

时间: 2024-06-14 02:07:21

Android网络判断知识小结_Android的相关文章

Android网络判断知识小结

Android中判断当前网络是否可用 应用场景:实现判断当前网络是否可用 当前有可用网络,如下图: 当前没有可用网络,如下图: 实现步骤: 1.获取ConnectivityManager对象 Context context = activity.getApplicationContext(); // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理) ConnectivityManager connectivityManager = (ConnectivityManager)con

Android Drawable必备知识小结_Android

什么是Drawable 首先Drawable是一个抽象类,表示的是可以在Canvas中绘制的图像,常被用作一个view的背景,有多种实现类完成不同的功能.其次Drawable大致可以分为这几类:图片.由颜色构成的图像.一般用xml中进行定义. Drawable的继承体系 Drawable的实现类及标签 Drawable 内部宽高的获取     getIntrinsicHeight.getIntrinsicWidth     - 当Drawable由图片构成时方法返回的是图片的宽高     - 

图片-android网络判断报空指针错误

问题描述 android网络判断报空指针错误 有人遇到这种情况么? 权限有 所有的判断有 但是connManager.getActiveNetworkInfo().isAvailable();还是会有报错的情况个别情况.我暂时能考虑的情况就是网络不稳定 if判断的时候没问题但是return的时候connManager.getActiveNetworkInfo()是null了 但是这种情况太极端了 基本上没有可能啊 if判断能有多久啊 解决方案 就是 getActiveNetworkInfo()为

Android签名知识小结_Android

一.为什么要签名 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的. 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换. APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉. 这样签名其实也是开发者的身份标识.交易中抵赖等事情发生时,签名可以防止抵赖的发生. 二.

Android横竖屏幕切换小结_Android

Android手机或平板都会存在横竖屏切换的功能,通常是由物理重力感应触发的,但是有时候也不尽然,通常在设置里面我们可以对手机的横竖屏切换进行关闭. AndroidManifest.xml <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|

android 网络连接处理分析_Android

在Android中,可以有多种方式来实现网络编程: 创建URL,并使用URLConnection/HttpURLConnection 使用HttpClient 使用WebView 创建URL,并使用URLConnection/HttpURLConnection java.net.*下面提供了访问 HTTP 服务的基本功能.使用这部分接口的基本操作主要包括: 创建 URL 以及 URLConnection / HttpURLConnection 对象 1 设置连接参数 2 连接到服务器 3 向服务

Android开发常见错误小结_Android

本文实例总结了Android开发的常见错误.分享给大家供大家参考.具体如下: 错误1: 在intent中添加了一个内容,在调用getStringExtra读取的时候,总是报错.代码如下: // back按钮 Button btnBack = (Button) findViewById(R.id.btnActivity2Back); btnBack.setOnClickListener(new OnClickListener() { @Override public void onClick(Vi

Android开发常用标签小结_Android

本文较为详细的总结了Android开发常用标签.分享给大家供大家参考.具体如下: android中inputType android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用.这也大大的方便的操作.有时需要虚拟键盘只为字符或只为数字.所以inputType尤为重要. android:paddingLeft与android:layout_marginLeft的区别 当按钮分别设置以上两个属性时,得到的效果是不一样的. android:paddingLeft

Android编程判断网络连接是否可用的方法_Android

本文实例讲述了Android编程判断网络连接是否可用的方法.分享给大家供大家参考,具体如下: 为了提高用户体验,我们在开发 android 应用的过程需要联网获取数据的时候我们首先要做的一步就是: 1.判断当前手机是否打开了网络 2.打开了网络是否可以上网 然后再去执行联网逻辑,避免没联网做不必要的工作! 通常情况下,我们是这样判断的 public static boolean isNetAvailable(Context context) { ConnectivityManager conne