Added broadcasts for external power events.

This commit is contained in:
Cliff Spradlin
2008-10-22 20:29:16 -07:00
parent 862bfdba15
commit fda6fae156
2 changed files with 30 additions and 0 deletions

View File

@ -507,6 +507,8 @@ import java.util.Set;
* <li> {@link #ACTION_PACKAGE_REMOVED} * <li> {@link #ACTION_PACKAGE_REMOVED}
* <li> {@link #ACTION_UID_REMOVED} * <li> {@link #ACTION_UID_REMOVED}
* <li> {@link #ACTION_BATTERY_CHANGED} * <li> {@link #ACTION_BATTERY_CHANGED}
* <li> {@link #ACTION_POWER_CONNECTED}
* <li> {@link #ACTION_POWER_DISCONNECTED}
* </ul> * </ul>
* *
* <h3>Standard Categories</h3> * <h3>Standard Categories</h3>
@ -1177,6 +1179,24 @@ public class Intent implements Parcelable {
*/ */
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_BATTERY_LOW = "android.intent.action.BATTERY_LOW"; public static final String ACTION_BATTERY_LOW = "android.intent.action.BATTERY_LOW";
/**
* Broadcast Action: External power has been connected to the device.
* This is intended for applications that wish to register specifically to this notification.
* Unlike ACTION_BATTERY_CHANGED, applications will be woken for this and so do not have to
* stay active to receive this notification. This action can be used to implement actions
* that wait until power is available to trigger.
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_POWER_CONNECTED = "android.intent.action.ACTION_POWER_CONNECTED";
/**
* Broadcast Action: External power has been removed from the device.
* This is intended for applications that wish to register specifically to this notification.
* Unlike ACTION_BATTERY_CHANGED, applications will be woken for this and so do not have to
* stay active to receive this notification. This action can be used to implement actions
* that wait until power is available to trigger.
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_POWER_DISCONNECTED = "android.intent.action.ACTION_POWER_DISCONNECTED";
/** /**
* Broadcast Action: Indicates low memory condition on the device * Broadcast Action: Indicates low memory condition on the device
*/ */

View File

@ -149,6 +149,16 @@ class BatteryService extends Binder {
mBatteryLevel, mBatteryVoltage, mBatteryTemperature); mBatteryLevel, mBatteryVoltage, mBatteryTemperature);
} }
// Separate broadcast is sent for power connected / not connected
// since the standard intent will not wake any applications and some
// applications may want to have smart behavior based on this.
if (mPlugType != 0 && mLastPlugType == 0) {
mContext.sendBroadcast(new Intent(Intent.ACTION_POWER_CONNECTED));
}
else if (mPlugType == 0 && mLastPlugType != 0) {
mContext.sendBroadcast(new Intent(Intent.ACTION_POWER_DISCONNECTED));
}
mLastBatteryStatus = mBatteryStatus; mLastBatteryStatus = mBatteryStatus;
mLastBatteryHealth = mBatteryHealth; mLastBatteryHealth = mBatteryHealth;
mLastBatteryPresent = mBatteryPresent; mLastBatteryPresent = mBatteryPresent;