源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android网络判断知识小结

  • 时间:2020-09-11 21:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android网络判断知识小结
[b]Android中判断当前网络是否可用 [/b] 应用场景:实现判断当前网络是否可用 当前有可用网络,如下图: [img]http://files.jb51.net/file_images/article/201512/201512211056303.png[/img] 当前没有可用网络,如下图: [img]http://files.jb51.net/file_images/article/201512/201512211056304.png[/img] 实现步骤: [b]1、获取ConnectivityManager对象[/b]
Context context = activity.getApplicationContext();
// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
[b]2、获取NetworkInfo对象 [/b]
// 获取NetworkInfo对象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
[b]3、判断当前网络状态是否为连接状态[/b]
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
{
   return true;
}
[b]4、在AndroidManifest.xml中添加访问当前网络状态权限[/b]
<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;
  }
}

[b] 控制台打印出的结果: [/b] [img]http://files.jb51.net/file_images/article/201512/201512211056305.jpg[/img] [b]Android 关于判断应用是否有网络[/b] 在Android编程中不少有许多应用需要判断是否有网络的问题,现在我就来说说关于网络的问题吧,源码如下: [b].java[/b]
 /**
   * 检查当前网络是否可用
   * 
   * @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()方法中判断这个方法,具体代码如下: [b].java[/b]
@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)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部