Add API to query if a UID is active

am: 0c1c9cd7f2

Change-Id: Ic209da2a6817b82e7bcc09bd6eb2c0896a4071f5
This commit is contained in:
Svet Ganov
2018-03-28 04:27:08 +00:00
committed by android-build-merger
2 changed files with 13 additions and 0 deletions

View File

@@ -94,6 +94,7 @@ interface IActivityManager {
void registerUidObserver(in IUidObserver observer, int which, int cutpoint,
String callingPackage);
void unregisterUidObserver(in IUidObserver observer);
boolean isUidActive(int uid, String callingPackage);
// =============== End of transactions used on native side as well ============================
// Special low-level communication with activity manager.

View File

@@ -13941,6 +13941,18 @@ public class ActivityManagerService extends IActivityManager.Stub
}
}
@Override
public boolean isUidActive(int uid, String callingPackage) {
if (!hasUsageStatsPermission(callingPackage)) {
enforceCallingPermission(android.Manifest.permission.PACKAGE_USAGE_STATS,
"getPackageProcessState");
}
synchronized (this) {
final UidRecord uidRecord = mActiveUids.get(uid);
return uidRecord != null && !uidRecord.setIdle;
}
}
@Override
public boolean convertFromTranslucent(IBinder token) {
final long origId = Binder.clearCallingIdentity();