Android开发 网络检测(使用广播监听)

比较简单的检测网络:

 1 /**
 2  * 检查网络是否连接
 3  * @param context
 4  * @return
 5  */
 6 public boolean isNetworkConnected(Context context) {
 7     if (context != null) {
 8         ConnectivityManager mConnectivityManager = (ConnectivityManager) context
 9                 .getSystemService(Context.CONNECTIVITY_SERVICE);
10         // 获取有效的网络信息
11         NetworkInfo mNetworkInfo = mConnectivityManager
12                 .getActiveNetworkInfo();
13         if (mNetworkInfo != null) {
14             // 返回网络是否可用
15             return mNetworkInfo.isAvailable();
16         }
17     }
18     return false;
19 }

用广播的方式检测网络连接状态,以及接入点的名称:

 1 /**
 2  * 网络连接广播接收
 3  * @author Administrator
 4  *
 5  */
 6 private class CheckNetStateRecevicer extends BroadcastReceiver {
 7
 8     @Override
 9     public void onReceive(Context context, Intent intent) {
10         // TODO Auto-generated method stub
11         if (intent.getAction().equals(
12                 ConnectivityManager.CONNECTIVITY_ACTION)) {
13             Log.i("Info", "网络状态已经改变");
14             cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);  // 获得网络连接服务
15             networkInfo = cm.getActiveNetworkInfo();    // 获得可用的网络信息
16
17             if (networkInfo != null
18                     && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
19                 String netId = networkInfo.getExtraInfo();    // 获得手机接入点的网络模式
20                 Toast.makeText(context, "网络已连接至" + netId, Toast.LENGTH_SHORT)
21                 .show();
22             } else if (networkInfo != null
23                     && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
24                 WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);
25                 String ssid = wm.getConnectionInfo().getSSID().toString();  // 获得WiFi接入点的名称
26                 Toast.makeText(context, "网络已连接至" + ssid, Toast.LENGTH_SHORT)
27                 .show();
28             } else {
29                 Toast.makeText(context, "网络出现异常", Toast.LENGTH_LONG).show();
30             }
31         }
32
33     }
34 }
时间: 2024-08-12 06:21:01

Android开发 网络检测(使用广播监听)的相关文章

Android开发之使用BroadcastReceiver实时监听电量(源代码分享)

Android系统中实时的监听手机电量以及开机启动功能都是通过BroadcastReceiver组件实现的.我们可以动态注册这个类的一个实例通过Context.registerReceiver()方法或者静态注册,通过<Receiver>标记在androidmanifest . xml.注意:如果我们注册一个接收器在Activity.onResume()实现,我们应该注销Activity在Activity生命周期的onPause方法中.(这将减少不必要的系统开销).切记不能注销Activity

Android 开发事件响应之基于监听的事件响应

Android 开发事件响应之基于监听的事件响应 本文将介绍Android 操作系统如何通过监听来实现对事件的响应. Android 开发事件响应之基于监听的事件响应 背景介绍 Android 开发事件响应类型 内部类 匿名内部类 外部类 直接绑定标签 总结 背景介绍 对于任何可视化开发来说,都会涉及到对控件的响应.我们通过举例:实现对Button 按钮的点击来讲解Android 里面对事件相应的办法. Android 开发事件响应类型 在Android 开发中,有两种方式可以对事件作出响应,分

(七)android开发中两种方式监听短信的原理和实现

一.监听短信的两种方式的简介 Android程序开发中,有两种方式监听短信内容:一.接收系统的短信广播:二.应用观察者模式,监听短信数据库. 第一种方式接收系统的短信广播: A.这种方式只对新收到的短消息有效,运行代码,并不会读取收件箱中已读或未读的消息,只有当收到新来的短消息时,才会执行onReceive()方法. B.并且这个广播是有序广播,如果当别的程序先读取到了这个广播,然后拦截掉了个这个广播,你将接收不到.当然我们可以通过设置priority的数值,其实有时是不管用的,现在在一些定制的

关于 Android ios cocos2d 中的广播监听

1. 关于广播监听 第一次使用是在Android中,broadcast.主要用在2个activity之间进行传递数据,发出一个广播,对这个广播有兴趣的就去监听它,做出相应的回应即可.主要是传递数据,触发机制比较好,跟全局变量或者单例有点像,但是使用场合有区别,比如2个activity之间传递数据,activity这种有生命周期的弄成全局变量和单例就不合适了. 2.Android的广播 发送广播: Intent intent = new Intent("OUR_BLE_CENTRAL_MANAGE

Android开发之使用广播监听网络状态变化

我们经常需要判断网络状态的变化,如有无网络,所以需要监听网络状态的变化,比如网络断开,网络连接给予友好提示.如何监听网络状态的变化呢,最近工作中需要用到这个,于是就用广播机制来实现了网络状态的监听. 使用广播机制来监听网络状态主要涉及到以下几点: 1.需要自己编写个网络广播接收器,该接收器继承BroadcastReceiver类,用来接收系统发出的广播.比如我自己写了个NetStatusReceiver广播接收器.代码如下: package com.log.system; import andr

Android开机和关机广播监听

Android开机.关机广播监听 一.开机广播的监听 1.在AndroidManifest.xml文件注册接收开机广播 <receiver android:name=".XXXBroadcastReceiver" > <intent-filter> <!-- 开机广播 --> <action android:name="android.intent.action.BOOT_COMPLETED" /> </inte

Android利用广播监听按下HOME和电源键

package cc.testhome; import cc.testhome.HomeKeyObserver.OnHomeKeyListener; import cc.testhome.PowerKeyObserver.OnPowerKeyListener; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 利用广播监听Home键的按下和长按Home键 * 利用广播监听电源键的按下(关闭屏幕) * *

Android 广播监听wifi

第一步:配置AndroidManifest.xml,在application结点下面添加如下代码 <receiver android:name=".NetworkConnectChangedReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="a

Android -- 使用广播监听Home键

//广播监听事件类 public class HomeKeyEventBroadCastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { //do what you want System.exit(0); } } private HomeKeyEventBroadCastReceiver homeKeyEventReceiver; prote