平时我们在wifi状态下可以随意地做许多事情,看视频啊、刷淘宝啊之类的,如果在手机使用流量的情况下就不能这么任性了。如何让我们的应用来得知当前的网络状态,从而来提醒用户是否继续操作呢?这就需要使用我们的ConnectivityManager 来帮助我们获取网络状态了。下面我们看下它的简单使用。
使用步骤:
1、获取ConnectivityManager对象(getSystemService(Context.CONNECTIVITY_SERVICE))
2、通过ConnectivityManager对象的.getActiveNetworkInfo() 来获得NetWorkInfo对象
3、NetWorkInfo对象.getTypeName()获取网络连接的类型,比如:mobile或者wifi
public class MainActivity extends Activity implements OnClickListener{
private Button btn_network_detail;
private TextView textview_network_detail;
private ConnectivityManager connectionManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_network_detail=(Button) findViewById(R.id.bt_network_detail);
textview_network_detail=(TextView) findViewById(R.id.textview_netDetail);
btn_network_detail.setOnClickListener(this);
//通过ConnectivityManager对象获取当前设备的网络状态,注意要添加权限
connectionManager=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_network_detail:
NetworkInfo networkinfo=connectionManager.getActiveNetworkInfo();
//此处注意NetworkInfo不能为null
if(networkinfo!=null&&networkinfo.isConnected()){
//networkinfo.getTypeName()获取网络状态类型名如wifi和moblie
textview_network_detail.setText("当前网络连接状态"+networkinfo.getTypeName());
}else{
textview_network_detail.setText("当前无网络连接");
}
break;
default:
break;
}
}
}
最后别忘记在manifest中添加使用权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>