软件编程
位置:首页>> 软件编程>> Android编程>> Android网络判断知识小结

Android网络判断知识小结

作者:mrr  发布时间:2022-06-01 02:39:16 

标签:android,网络,判断

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 关于判断应用是否有网络

在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>
0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com