Android的网络状态监听
2015-02-06 15:34
211 查看
1、获取当前网络信息
想要获取当前的网络信息,就得获取ConnectivityManager,调用ConnectivityManager的getActiveNetworkInfo()方法,返回一个NetWorkInfo对象。这个NetWorkInfo对象中的getTypeName()方法,会返回当前的网络类型。"WIFI" or "MOBILE"。
当然还需要添加权限,android.permission.ACCESS_NETWORK_STATE;
2、设置网络改变的监听
在Android系统中,当网络状态发生改变的时候,系统就会发出一个广播。我们需要做的事情就是去定义一个广播接收器,去专门接受到这个广播,然后获取当前的网络状态进行一定的判断(提醒用户什么的)。
从上面我们已经可以知道如何获取当前网络信息了,那我们只要做的就是接受网络改变的广播。
代码和原理很简单,直接看代码可以看懂:
想要获取当前的网络信息,就得获取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(); } } } }
相关文章推荐
- network: android 使用广播监听网络状态
- 在android上监听网络状态的变更
- android 实时监听网络连接状态
- 【Android】Android 监听网络状态+源代码
- 【Android】Android 监听网络状态+源代码
- Android监听网络状态
- Android:监听WIFI网络状态
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- android接收广播监听网络状态变化
- 在android上监听网络状态的变更
- Android中监听网络状态
- Android中监听网络状态
- Android开发:实时监听网络状态
- 【总结备用】Android监听网络状态实现(BroadcastReceiver + Service)
- 在android上监听网络状态的变更(转)
- network: android 使用广播监听网络状态
- android 监听网络连接状态的改变
- android 使用广播监听网络状态
- Android监听网络连接状态变化