virtual status_t acquireWakeLock(int flags, const sp<IBinder>& lock, const String16& tag,
const String16& packageName) = 0;
+ virtual status_t acquireWakeLockWithUid(int flags, const sp<IBinder>& lock, const String16& tag,
+ const String16& packageName, int uid) = 0;
virtual status_t releaseWakeLock(const sp<IBinder>& lock, int flags) = 0;
};
// must be kept in sync with IPowerManager.aidl
enum {
ACQUIRE_WAKE_LOCK = IBinder::FIRST_CALL_TRANSACTION,
- RELEASE_WAKE_LOCK = IBinder::FIRST_CALL_TRANSACTION + 1,
+ ACQUIRE_WAKE_LOCK_UID = IBinder::FIRST_CALL_TRANSACTION + 1,
+ RELEASE_WAKE_LOCK = IBinder::FIRST_CALL_TRANSACTION + 2,
};
class BpPowerManager : public BpInterface<IPowerManager>
return remote()->transact(ACQUIRE_WAKE_LOCK, data, &reply);
}
+ virtual status_t acquireWakeLockWithUid(int flags, const sp<IBinder>& lock, const String16& tag,
+ const String16& packageName, int uid)
+ {
+ Parcel data, reply;
+ data.writeInterfaceToken(IPowerManager::getInterfaceDescriptor());
+
+ data.writeStrongBinder(lock);
+ data.writeInt32(flags);
+ data.writeString16(tag);
+ data.writeString16(packageName);
+ data.writeInt32(uid); // uid to blame for the work
+ return remote()->transact(ACQUIRE_WAKE_LOCK_UID, data, &reply);
+ }
+
virtual status_t releaseWakeLock(const sp<IBinder>& lock, int flags)
{
Parcel data, reply;