package com.droidwatcher.receivers; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class BatteryState extends BroadcastReceiver { private static int sBatteryLevel = 100; public static int getBatteryLevel(){ return sBatteryLevel; } private static volatile BatteryState instance; public static BatteryState getInstance() { BatteryState localInstance = instance; if (localInstance == null) { synchronized (BatteryState.class) { localInstance = instance; if (localInstance == null) { instance = localInstance = new BatteryState(); } } } return localInstance; } public static void dispose(){ instance = null; } private BatteryState(){} @Override public void onReceive(Context context, Intent intent) { int rawlevel = intent.getIntExtra("level", -1); int scale = intent.getIntExtra("scale", -1); int lev = -1; if (rawlevel >= 0 && scale > 0) { lev = (rawlevel * 100) / scale; } sBatteryLevel = lev; } }