package tv.pps.bi.receiver; import java.util.List; import tv.pps.bi.config.IntervalTimeConstance; import tv.pps.bi.config.TagConstance; import tv.pps.bi.service.ListenService; import tv.pps.bi.utils.LogUtils; import android.app.ActivityManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class AlarmReceiver extends BroadcastReceiver { String receiveType; public void onReceive(Context context, Intent intent) { if (!IntervalTimeConstance.isSTART_SERVICE_SWITCH()) { if ("tv.pps.alarmReceiver".equals(intent.getAction())) { if (isServiceRunning(context, "tv.pps.bi.service.ListenService")) { receiveType = "监听服务运行中......即将被关闭"; Intent deliver = new Intent(); deliver.setClass(context, ListenService.class); context.stopService(deliver); } else { receiveType = "监听服务已关闭"; } } else { receiveType = "在广播中关闭其他服务"; } LogUtils.e(TagConstance.TAG_SERVICE, receiveType); return; } if ("tv.pps.alarmReceiver".equals(intent.getAction())) { Intent service = new Intent(); service.setClass(context, ListenService.class); context.startService(service); LogUtils.v(TagConstance.TAG_SERVICE, "开启监听服务"); } // if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction())) { // // 检测到网络变化 // ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); // NetworkInfo info = connectivityManager.getActiveNetworkInfo(); // if (info != null && info.isAvailable()) { // String name = info.getTypeName(); // LogUtils.v(TagConstance.TAG_SERVICE, "网络为:"+name); // //进行开启服务 // Intent service = new Intent(); // service.setClass(context, ListenService.class); // context.startService(service); // LogUtils.v(TagConstance.TAG_SERVICE, "开启监听服务"); // // } else { // LogUtils.v(TagConstance.TAG_SERVICE, "没有网络"); // // // // } // } } /** * 用来判断服务是否运行. * * @param context * @param className * 判断的服务名字 * @return true 在运行 false 不在运行 */ public static boolean isServiceRunning(Context mContext, String className) { boolean isRunning = false; ActivityManager activityManager = (ActivityManager) mContext .getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> serviceList = activityManager .getRunningServices(30); if (!(serviceList.size() > 0)) { return false; } for (int i = 0; i < serviceList.size(); i++) { if (serviceList.get(i).service.getClassName().equals(className)) { isRunning = true; break; } } return isRunning; } // }