package com.yuyh.library.utils.network;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.IBinder;
/**
* 网络状态监听服务
*
* @author yuyh.
* @date 16/4/9.
*/
public class NetworkService extends Service {
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager == null) {
networkBroadCast(context, intent, -1);
return;
}
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info == null) {
networkBroadCast(context, intent, -1);
return;
}
int type = info.getType();
switch (type) {
case ConnectivityManager.TYPE_WIFI:
networkBroadCast(context, intent, 1);
break;
case ConnectivityManager.TYPE_MOBILE:
networkBroadCast(context, intent, 2);
break;
default:
break;
}
}
};
private void networkBroadCast(Context context, Intent intent, int netState) {
intent.setAction(NetworkUtils.NET_BROADCAST_ACTION);
intent.putExtra(NetworkUtils.NET_STATE_NAME, netState);
context.sendBroadcast(intent);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
IntentFilter mFilter = new IntentFilter();
mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(mReceiver, mFilter);
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(mReceiver);
}
}