Android的网络状态监听
来源:互联网 发布:网络装修 知乎 编辑:程序博客网 时间:2024/06/10 05:11
1、获取当前网络信息
想要获取当前的网络信息,就得获取ConnectivityManager,调用ConnectivityManager的getActiveNetworkInfo()方法,返回一个NetWorkInfo对象。这个NetWorkInfo对象中的getTypeName()方法,会返回当前的网络类型。"WIFI" or "MOBILE"。
当然还需要添加权限,android.permission.ACCESS_NETWORK_STATE;
package com.example.wifitest; import android.support.v7.app.ActionBarActivity; import android.widget.TextView; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; public class MainActivity extends ActionBarActivity { private ConnectivityManager mConnectiviayManager;// 网络管理器 private NetworkInfo mNetWorkInfo;// 网络信息对象 private TextView tv_wifi; @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); // 获取网络管理器 mConnectiviayManager = (ConnectivityManager) getSystemService(this.CONNECTIVITY_SERVICE); // 获取当前网络信息 mNetWorkInfo = mConnectiviayManager.getActiveNetworkInfo(); tv_wifi = (TextView) findViewById(R.id.wifi); tv_wifi.setText(mNetWorkInfo.getTypeName()); } }
2、设置网络改变的监听
在Android系统中,当网络状态发生改变的时候,系统就会发出一个广播。我们需要做的事情就是去定义一个广播接收器,去专门接受到这个广播,然后获取当前的网络状态进行一定的判断(提醒用户什么的)。
从上面我们已经可以知道如何获取当前网络信息了,那我们只要做的就是接受网络改变的广播。
代码和原理很简单,直接看代码可以看懂:
package com.example.wifitest; import android.support.v7.app.ActionBarActivity; import android.widget.Toast; 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.Bundle; public class MainActivity extends ActionBarActivity { private ConnectivityManager mConnectiviayManager;// 网络管理器 private NetworkInfo mNetWorkInfo;// 网络信息对象 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 注册广播接收器 // -----网络状态改变时,发出的广播Action为ConnectivityManager.CONNECTIVITY_ACTION // 我们用这个Action去注册广播,进行接收 IntentFilter intentFilter = new IntentFilter( ConnectivityManager.CONNECTIVITY_ACTION); ConnectionChangeReceiver mReceiver = new ConnectionChangeReceiver(); registerReceiver(mReceiver, intentFilter); } // 定义一个广播接收器 public class ConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 获取网络管理器 mConnectiviayManager = (ConnectivityManager) getSystemService(context.CONNECTIVITY_SERVICE); // 获取当前网络信息 mNetWorkInfo = mConnectiviayManager.getActiveNetworkInfo(); if (null == mNetWorkInfo) { Toast.makeText(MainActivity.this, "已断开网络!", Toast.LENGTH_LONG) .show(); } else { Toast.makeText(MainActivity.this, "当前的网络状态 :" + mNetWorkInfo.getTypeName(), Toast.LENGTH_LONG).show(); } } } }
0 0
- Android的网络状态监听
- Android网络状态的监听
- android监听网络状态
- Android监听网络状态
- Android 监听网络状态
- android监听网络状态
- Android网络状态监听
- android 网络状态监听
- android网络状态监听
- Android监听网络状态
- android 监听网络状态
- Android网络状态监听
- android 监听网络状态
- android-监听网络状态
- Android-监听网络状态
- android 监听网络连接状态的改变
- android 监听网络连接状态的改变
- android 监听网络连接状态的改变
- 欢迎使用CSDN-markdown编辑器
- C#解析XML详解(XPath以及带命名空间NameSpace)
- win32窗口创建 之 CreateDialog和DialogBox
- 重新系统学习Java收获的小tips
- 武汉大学无线传感实验床项目招标公告(开标时间2015年1月15日)
- Android的网络状态监听
- Openstack Heat Template 模板定义说明(一)
- 关闭一些不需要的服务 加快linux启动过程
- 从 C 的声明符到 Objective-C 的 block 语法
- Centos修改root用户密码
- SimpleDateFormat格式说明
- UINavigationContoller 多级页面 越级跳转 内存释放问题
- Activiti 5.17 Activiti与restlet的继承关系和扩展
- 隐马学习一