1.添加权限
<uses-permission android:name="android.permission.INTERNET"/> <!-- 网络权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <!-- 网络检测 -->
2.BaseActivity
public class BaseActivity extends Activity {
private OnNetListener onNetListener;
protected NetBroadcastReceiver netBroadcastReceiver;
/**
* 注册net广播
*/
@Override
protected void onStart() {
// TODO Auto-generated method stub
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
netBroadcastReceiver = new NetBroadcastReceiver();
registerReceiver(netBroadcastReceiver, filter);
super.onStart();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
}
/**
* 关闭net广播
*/
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unregisterReceiver(netBroadcastReceiver);
}
/**
* 网络广播监听
* @author Administrator
*
*/
class NetBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
int NetType = -1;
String NetName = "没有网络";
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = mConnectivityManager.getActiveNetworkInfo();
if(netInfo != null && netInfo.isAvailable()){
switch (netInfo.getType()) {
case ConnectivityManager.TYPE_MOBILE:NetType = 0;break;
case ConnectivityManager.TYPE_WIFI:NetType = 1;break;
case ConnectivityManager.TYPE_ETHERNET:NetType = 2;break;
default:
break;
}
NetName = netInfo.getTypeName();
}
onNetListener.onNetLoader(NetType,NetName);
}
}
public void setOnNetListener(OnNetListener onNetListener){
this.onNetListener = onNetListener;
}
public abstract interface OnNetListener{
/**
* -1 :无网络 0:2g/3G 1:wifi 2:有线网
* @param netType
* @param NetName
*/
public abstract void onNetLoader(int netType,String NetName);
}
}
- 继承BaseActivity ,在使用的地方调用回调函数
setOnNetListener(new OnNetListener() {
@Override
public void onNetLoader(int netType, String NetName) {
// TODO Auto-generated method stub
Toast.makeText(LoginActivity.this, NetName, Toast.LENGTH_SHORT).show();
}
});