android 使用广播监听网络状态
来源:互联网 发布:编小说的软件 编辑:程序博客网 时间:2024/05/16 14:11
参考:http://blog.csdn.net/androidbluetooth/article/details/7199708
博客 http://blog.csdn.net/androidbluetooth/article/details/6860146 详细的粘贴了很多判断网络的方法。
网络状态发生变化的时候,系统会发出 android.net.conn.CONNECTIVITY_CHANGE .
下面是实现的 demo :
package mark.zhang;import android.app.Service;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.IBinder;import android.util.Log;public class ListenNetStateService extends Service { private ConnectivityManager connectivityManager; private NetworkInfo info; private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) { Log.d("mark", "网络状态已经改变"); connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); info = connectivityManager.getActiveNetworkInfo(); if(info != null && info.isAvailable()) { String name = info.getTypeName(); Log.d("mark", "当前网络名称:" + name); } else { Log.d("mark", "没有可用网络"); } } } }; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); IntentFilter mFilter = new IntentFilter(); mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); registerReceiver(mReceiver, mFilter); } @Override public void onDestroy() { super.onDestroy(); unregisterReceiver(mReceiver); } @Override public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, flags, startId); }}
在 manifest 文件中需要加上一条权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
回头再看看关于 CONNECTIVITY_ACTION 的介绍,从 api 中,我们还可以得到一个信息:
通过 intent 可以获取一些 EXTRA,如 EXTRA_NO_CONNECTIVITY。
boolean b = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true);
更多信息可以参考 ConnectivityManager.
===========================================
在Android操作系统中,如何能够正确的判断我们所连接的网络是否断开恩?今天我们就针对这一应用技巧进行一个详细的分析。
public class ConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive( Context context, Intent intent ) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if ( activeNetInfo != null ) { Toast.makeText( context, "Active Network Type : " + activeNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show(); } if( mobNetInfo != null ) { Toast.makeText( context, "Mobile Network Type : " + mobNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show(); } } }
< !-- Needed to check when the network connection changes --> < uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> < receiver android:name="com.blackboard.androidtest.receiver.ConnectionChangeReceiver" android:label="NetworkConnection"> < intent-filter> < action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> < /intent-filter> < /receiver>
分类: Android, Technology
- network: android 使用广播监听网络状态
- network: android 使用广播监听网络状态
- android 使用广播监听网络状态
- network: android 使用广播监听网络状态
- android 使用广播监听网络状态
- network: android 使用广播监听网络状态
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- android 使用广播监听网络状态变化
- android 使用广播监听网络状态
- Android 广播监听网络状态
- Android网络状态广播监听
- C++句柄
- JQuery Mobile 页面过渡效果设置
- Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
- C/C++ 笔试、面试题30
- 服务器所有端口号作用详解
- android 使用广播监听网络状态
- Content Providers--怎样去访问一个基本的content provider
- 优化数据库前 问自己10个问题
- vista 或 win7下 新移动硬盘无法创建扩展分区解决办法
- 让我们离线吧
- INIT_DELAYED_WORK() 函数剖析 (2013-01-07 15:45:11)
- cocos2d-x游戏开发(一)开始菜单
- 浅谈C#中运算符重载的方方面面
- “路漫漫其修远兮,吾将上下而求索”,方向、方向、方向在哪里?