1:前言:

我们在Android开发的过程中,很多实现是要向远程服务器拿数据的,但是未必当前设备一定连接了网络啊,那么此时我们就是要进行判断的了,

如果是有网络的话,那么此时就去向远程服务器去拿数据,如果是没有网络的话,给用户一个小小的温馨提示,同时为了用户的体验感友好,没有网络的

时候可以向本地的SQLite的数据库区拿数据。(等到有网的时候,SQLite数据库的数据需要马上的更新)。

现在我们开始进行演示如何判断当前设备是否连接网络。

2:New 一个安卓Android项目

默认的Activity里面的代码如下。[我们进行弄一个按钮来进行触发事件,同时来一个文本文字来进行显示当前网络的数据信息]

 package com.example.androidtestwangluo;

 import android.app.Activity;
import android.os.Bundle;
import android.widget.Button; public class MainActivity extends Activity { private Button myBtn ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //进行的绑定按钮的控件
myBtn = (Button)findViewById(R.id.MyButton) ; //绑定单击的事件的监听,需事件类的实例。(我们在外部进行的定义一个)
myBtn.setOnClickListener(new MyOnClickLiner(this)); }
}

此时的Activity对应设置的-----------"布局"-----代码xml效果图如下

接下来我们进看一下那个单击事件   new MyOnClickLiner(this)  后的那个事件的实现类的代码  就是这个类   MyOnClickLiner

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

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

选择 Users Permission    Name :下拉为: 找到   android.permission.ACCESS_NETWORK_STATE
            (这个权限就是能够的获取网络连接的类型的权限)

3:进行运行测试效果了。

有网络的时候

手机网络断开的时候:

当权限忘记设置的时候,我上面的写的程序进行了处理的。

我进行了try...catch.....进行了异常的处理,温馨友好的进行了提示(作为我们开发人员,程序可能情况,我们都要进行try..catch 进行处理的,才是完成的程序

否则,给用户安装用了,来个异常,那么此软件就是强行退出,给用户的体验感很不好)

-------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------

以上就是我进行判断Android设备开发网络是否连接的代码,感觉你的观看。

在Android开发中如何判读当前设备是否连接网络的更多相关文章

  1. Android开发中Handler的经典总结--转载至网络

    一.Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释:当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件 ...

  2. 在android开发中使用multdex的方法-IT蓝豹为你整理

    Android系统在安装应用时,往往需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个,因此在Android开发中,需要使用到MultiDex来解决这个问 ...

  3. Android开发中,那些让您觉得相见恨晚的方法、类或接口

    Android开发中,那些让你觉得相见恨晚的方法.类或接口本篇文章内容提取自知乎Android开发中,有哪些让你觉得相见恨晚的方法.类或接口?,其实有一部是JAVA的,但是在android开发中也算常 ...

  4. 如何在Android开发中让你的代码更有效率

    最近看了Google IO 2012年的一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善And ...

  5. 转:Android开发中的MVP架构(最后链接资源不错)

    Android开发中的MVP架构 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建. 这篇文章是我通过研究和 ...

  6. 转: Android开发中的MVP架构详解(附加链接比较不错)

    转: http://www.codeceo.com/article/android-mvp-artch.html 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解M ...

  7. android开发中的5种存储数据方式

    数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences ...

  8. 【转】android开发中关于模拟器emulation的常见问题

    [转]android开发中关于模拟器emulation的常见问题 Trouble: 无法启动android模拟器,提示 XDM authorization key matches an existin ...

  9. 设计模式笔记之二:Android开发中的MVP架构(转)

    写在前面,本博客来源于公众号文章:http://mp.weixin.qq.com/s?__biz=MzA3MDMyMjkzNg==&mid=402435540&idx=1&sn ...

随机推荐

  1. 在MFC中,使用控制台Console输出调试信息

    1.在MFC的应用类的InitInstance()函数里添加: AllocConsole(); 有时候需要调整这行代码在InitInstance函数的位置 2.继续添加以下代码 freopen(&qu ...

  2. Linux cache释放

    cache释放: To free pagecache: > /proc/sys/vm/drop_caches To free dentries and inodes: > /proc/sy ...

  3. 4T_进程与进程间通信

    ∮进程 进程与程序 进程与程序是有区别的.刚吃完炸鸡腿,拿出一张餐巾纸,擦完嘴之后,在油乎乎的纸上写下以下文字 #include <stdio.h> void main() { print ...

  4. 第六百一十一天 how can I 坚持

    离开泛华了,在那感觉确实挺压抑的,什么环境才适合我呢.哎. 明天回济南,弟弟交房了,去看看房子,和郭娜跨个年,好好谈吧,尽快结婚了. 睡觉.

  5. Kafka安装

    一.下载kafka: http://kafka.apache.org/downloads 二.解压 tar -zxvf kafka_2.10-0.10.0.1.tgz 三.kafka需要用到zooke ...

  6. MongoDB是一个介于关系数据库和非关系数据库之间的产品

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.M ...

  7. XidianOJ 1149 卡尔的技能 II

    --正文 多重集合数 + 组合数取模 首先求出没有限制的选择方法C(n+m-1,m) 然后减掉至少有一个元素选择了k+1次的方法数,加上至少有两个元素选择了k+1次的方法数...以此类推 然后是组合数 ...

  8. lnmp

    参照http://www.osyunwei.com/archives/8867.html,略有改动 一 .系统约定 软件源代码包存放位置:/usr/local/src 源码包编译安装位置:/usr/l ...

  9. WCF之Binding详解

    本文的出发点: 通过阅读本文,您能了解以下知识: WCF中的Binding是什么? Binding的组 成? Binding Element 的分类? Binding描述 了那些层面的信息? 选择正确 ...

  10. 强强联合之jquery操作angularjs对象

    jquery是一个非常强大的js框架,angularjs是一个非常牛的前端mvc框架.虽然用其中的任何一个框架在项目中够用了,但是有时候这两个框架需要混合着用,虽然不推荐.但有时候混合用时,却非常方便 ...