BroadcastReceiver 判断网络状态

来源:互联网 发布:java ftp 上传文件 编辑:程序博客网 时间:2024/05/16 18:25

1 ##创建广播接受者

public class NetworkStateReceiver extends BroadcastReceiver {    private ConnectivityManager mConnectivityManager;    private NetworkInfo netInfo;    @Override    public void onReceive(Context context, Intent intent) {        // TODO Auto-generated method stub        String action = intent.getAction();        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {            mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);            netInfo = mConnectivityManager.getActiveNetworkInfo();            if (netInfo != null && netInfo.isAvailable()) {                /////////////网络连接                String name = netInfo.getTypeName();                Log.e("name=", name);                if (netInfo.getType() == ConnectivityManager.TYPE_WIFI) {                    /////WiFi网络                    Log.e("WiFi网络=", "WiFi网络");                } else if (netInfo.getType() == ConnectivityManager.TYPE_ETHERNET) {                    /////有线网络                    Log.e("有线网络=", "有线网络");                } else if (netInfo.getType() == ConnectivityManager.TYPE_MOBILE) {                    /////////3g网络                    Log.e("3g网络=", "3g网络");                }            } else {                ////////网络断开                Toast.makeText(context, "无网络", Toast.LENGTH_SHORT).show();            }        }    }}

2 ##在main函数里动态注册广播

  networkStateReceiver = new NetworkStateReceiver();  IntentFilter filter = new IntentFilter();                 filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);  registerReceiver(networkStateReceiver, filter);

3 ##在AndroidManifest里设置权限

  <!--获取网络权限-->    <uses-permission android:name="android.permission.INTERNET" />    <!--或者网络状态-->    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />