首先添加以下权限

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

new一个广播NetStateChangeBroadcast

package aviationboss.broadcast;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo.State;import android.util.Log;import android.widget.Toast;import aviationboss.data.SystemData;public class NetStateChangeBroadcast extends BroadcastReceiver {    private ConnectivityManager connectivity;    private boolean isConnect = false;    @Override    public void onReceive(Context arg0, Intent arg1) {        // TODO Auto-generated method stub        connectivity = (ConnectivityManager) arg0                .getSystemService(arg0.CONNECTIVITY_SERVICE);        State wifiState = connectivity.getNetworkInfo(                ConnectivityManager.TYPE_WIFI).getState();        if (State.CONNECTED == wifiState) {            isConnect = true;        }                if(connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)!=null){            State mobileState = connectivity.getNetworkInfo(                    ConnectivityManager.TYPE_MOBILE).getState();            if (State.CONNECTED == mobileState) {                isConnect = true;            }        }                Intent intent = new Intent();        intent.setAction("netConnect");        if (isConnect) {            if (!SystemData.NetState) {                Toast.makeText(arg0, "网络已连接", Toast.LENGTH_SHORT).show();                SystemData.NetState = true;                intent.putExtra("netActions", "网络已连接");                arg0.sendBroadcast(intent);            }        } else {            if (SystemData.NetState) {                Toast.makeText(arg0, "网络已断开", Toast.LENGTH_SHORT).show();                SystemData.NetState = false;                intent.putExtra("netActions", "网络已断开");                arg0.sendBroadcast(intent);            }        }    }}

判断wifi的连接状态

connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState()

判断移动网的连接状态

connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState()

在配置文件中添加该广播,并设置监听的动作

<receiver android:name="aviationboss.broadcast.NetStateChangeBroadcast" >    <intent-filter>        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />    </intent-filter></receiver>

更多相关文章

  1. android 网络拨号流程
  2. android 8.1 修改禁止状态栏下拉
  3. Android判断当前的android设备是否处于联网状态
  4. Android 网络链接,不要忘记添加网络权限。

随机推荐

  1. Android--Dialog
  2. 对Android中Intent的理解
  3. Android(安卓)Looper和Handler分析 .
  4. Android中的Gallery的使用
  5. React-Native 写的 android 应用
  6. 短信ui-会话编辑界面(二)接收者UI
  7. Android(三) 数据存储之二 SharedPreferenc
  8. [转]Android(安卓)APK反编译得到Java源代
  9. android AVD 启动时报错(emulator: error
  10. Android内存(内存溢出 内存不足 内存低 )