在Android开发中如何判读当前设备是否连接网络

得意犹堪夸世俗,诏黄新湿字如鸦。这篇文章主要讲述在Android开发中如何判读当前设备是否连接网络相关的知识,希望能为你提供帮助。
1:前言:
    我们在android开发的过程中,很多实现是要向远程服务器拿数据的,但是未必当前设备一定连接了网络啊,那么此时我们就是要进行判断的了,
如果是有网络的话,那么此时就去向远程服务器去拿数据,如果是没有网络的话,给用户一个小小的温馨提示,同时为了用户的体验感友好,没有网络的
时候可以向本地的SQLite的数据库区拿数据。(等到有网的时候,SQLite数据库的数据需要马上的更新)。
现在我们开始进行演示如何判断当前设备是否连接网络。
 
2:New 一个安卓Android项目
    默认的Activity里面的代码如下。[我们进行弄一个按钮来进行触发事件,同时来一个文本文字来进行显示当前网络的数据信息]

1 package com.example.androidtestwangluo; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.widget.Button; 6 7 8 public class MainActivity extends Activity { 9 10private Button myBtn ; 11@Override 12protected void onCreate(Bundle savedInstanceState) { 13super.onCreate(savedInstanceState); 14setContentView(R.layout.activity_main); 15 16//进行的绑定按钮的控件 17myBtn = (Button)findViewById(R.id.MyButton) ; 18 19//绑定单击的事件的监听,需事件类的实例。(我们在外部进行的定义一个) 20myBtn.setOnClickListener(new MyOnClickLiner(this)); 21 22 23} 24 }

  此时的Activity对应设置的-----------"布局"-----代码xml效果图如下
 
       
在Android开发中如何判读当前设备是否连接网络

文章图片

接下来我们进看一下那个单击事件    new MyOnClickLiner(this)   后的那个事件的实现类的代码   就是这个类     MyOnClickLiner
     
在Android开发中如何判读当前设备是否连接网络

文章图片

 
 
package com.example.androidtestwangluo; import android.app.Activity; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; import android.widget.Toast; public class MyOnClickLiner implements OnClickListener {private Context conText; private TextView thisText; //定义一个连接监管对象 private ConnectivityManager cm; public MyOnClickLiner(Context conText){ this.conText = conText; } @Override public void onClick(View v) { //进行的把上下文对象强制转换为Activity对象。 Activity c =(Activity)conText ; int color = 0 ; String textContext= null; try { //进行的绑定文本视图 thisText =(TextView)c.findViewById(R.id.textView1); cm =(ConnectivityManager)c.getSystemService(c.CONNECTIVITY_SERVICE) ; NetworkInfo woin = cm.getActiveNetworkInfo() ; if(woin!=null){ //有网络的状态表进行设置有网络的状态 textContext = c.getResources().getString(R.string.network_ok) ; color = c.getResources().getColor(R.color.green); }else{//有网络的状态表进行设置有网络的状态 textContext = c.getResources().getString(R.string.network_no) ; color = c.getResources().getColor(R.color.red); }} catch (Exception e){Toast.makeText(c, "你没有这个权限",Toast.LENGTH_LONG).show() ; }//给这个控件进行的设置文本 thisText.setText(textContext) ;
//给这个控件进行的设置背景颜色 thisText.setBackgroundColor(color) ; }}

核心判读是否有网络的代码是
cm =(ConnectivityManager)c.getSystemService(c.CONNECTIVITY_SERVICE NetworkInfo woin = cm.getActiveNetworkInfo() ; woin ==null //表示没有网络,否则是有连接网络

 
 
最后特别注意:
  我们进获取手机的连接网络的状态的时候,需要有个权限的设置的,此时我们要进行添加一个权限,
    否则app一运行,会出现程序已停止现象,自动的退出程序。
    (须知上面的获取手机网络状态的代码,我进行了try....catch....,进行了捕获,进一步来温馨的提示。)
 
哪里添加呢,添加什么的权限呢,好,我们接下来看一下。
在项目的 bin目录--res--下的AndroidManifest.xml
         
在Android开发中如何判读当前设备是否连接网络

文章图片

 
      双击打开--再次点Permissions这个界面类型,add 一个权限 

     
在Android开发中如何判读当前设备是否连接网络

文章图片

 

    选择 Users Permission    Name :下拉为: 找到     android.permission.ACCESS_NETWORK_STATE
            (这个权限就是能够的获取网络连接的类型的权限)
     
在Android开发中如何判读当前设备是否连接网络

文章图片

 
  3:进行运行测试效果了。
              有网络的时候
               
在Android开发中如何判读当前设备是否连接网络

文章图片

              手机网络断开的时候:
             
在Android开发中如何判读当前设备是否连接网络

文章图片

            当权限忘记设置的时候,我上面的写的程序进行了处理的。
                   
在Android开发中如何判读当前设备是否连接网络

文章图片

                  我进行了try...catch.....进行了异常的处理,温馨友好的进行了提示(作为我们开发人员,程序可能情况,我们都要进行try..catch 进行处理的,才是完成的程序
否则,给用户安装用了,来个异常,那么此软件就是强行退出,给用户的体验感很不好)
 
  -------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------
以上就是我进行判断Android设备开发网络是否连接的代码,感觉你的观看。
【在Android开发中如何判读当前设备是否连接网络】 





    推荐阅读