Android(安卓)网络管理类的使用(一)
16lz
2021-01-26
package com.example.connectivitymanager;import android.support.v7.app.ActionBarActivity;import android.annotation.SuppressLint;import android.content.Context;import android.net.ConnectivityManager;import android.net.LinkProperties;import android.net.Network;import android.net.NetworkCapabilities;import android.net.ConnectivityManager.NetworkCallback;import android.net.NetworkInfo;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;/**<ConnectivityManager> * ConnectivityManager是一个用来查询网络状态变化的类,网络状态变化时通知应用; * ConnectivityManager实现的五点功能: * (1)管理网络连接(Wifi,GPRS等); * (2)网络状态发生变化时发送广播; * (3)当前网络断开,试图连接到其它的网络; * (4)提供API来查询粗粒度和细粒度; * (5)提供API来查询和选择数据流的网络; * * <NetworkInfo> *NetworkInfo是描述网络接口状态的类, *使用getActiveNetWorkInfo()方法法来取得代表当前网络连接的NetWorkInfo实例; *getState() //返回连接状态 *getDetailedState() //返回连接状态 *getExtraInfo() //返回连接网络名称 *getType() //返回连接网络类型编码 *getTypeName() //返回连接网络类型名字 */@SuppressLint("NewApi")public class MainActivity extends ActionBarActivity implements OnClickListener{ private ConnectivityManager manager; private NetworkInfo netInfo; private Button showDetailsBtn; private EditText showEt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //取得ConnectivityManager实例 manager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); //取得当前网络连接实例 netInfo=manager.getActiveNetworkInfo(); showDetailsBtn=(Button)findViewById(R.id.showDetailsBtn); showDetailsBtn.setOnClickListener(this); showEt=(EditText)findViewById(R.id.showEt); } /** * 注册网络变化监听器 */ private class regNetChange extends NetworkCallback { @Override public void onLosing(Network network, int maxMsToLive) {//当前网络准备断开连接调用 super.onLosing(network, maxMsToLive); Toast.makeText(getApplicationContext(), "网络断开", 1000).show(); } @Override public void onLost(Network network) {//当前网络掉线调用 super.onLost(network); Toast.makeText(getApplicationContext(), "网络不可用", 1000).show(); } @Override public void onAvailable(Network network) {//当框架连接,并宣布新的网络投入使用调用。 super.onAvailable(network); Toast.makeText(getApplicationContext(), "网络可用", 1000).show(); } @Override public void onLinkPropertiesChanged(Network network, LinkProperties linkProperties) { super.onLinkPropertiesChanged(network, linkProperties); } @Override public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) { super.onCapabilitiesChanged(network, networkCapabilities); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.showDetailsBtn: if(netInfo.isAvailable()){ Toast.makeText(getApplicationContext(), "showDetailsBtn:网络可用", 1000).show(); showEt.setText(netInfo.getDetailedState().toString()+"\n\r" +netInfo.getExtraInfo()+"\n\r" +netInfo.getReason()+"\n\r" +netInfo.getSubtype()+"\n\r" +netInfo.getSubtypeName()+"\n\r" +netInfo.getType()+"\n\r" +netInfo.getTypeName()+"\n\r" +netInfo.getState()); }else Toast.makeText(getApplicationContext(), "showDetailsBtn:网络不可用", 1000).show(); break; default: break; } } }
更多相关文章
- Android(安卓)listview--checkbox
- Android挂断和接听电话
- android(判断是否联网)
- Android客户端修改网页
- 蓝牙后台长连接 服务
- Android(安卓)监听手机锁屏
- 84 Android(安卓)Hnadler 封装下载图片工具类
- Android(安卓)保存和回复应用状态
- android 获取wifi信息