Loading services/core/java/com/android/server/ServiceWatcher.java +16 −1 Original line number Diff line number Diff line Loading @@ -141,8 +141,12 @@ public class ServiceWatcher implements ServiceConnection { * <p> * Note that if there are no matching encryption-aware services, we may not * bind to a real service until after the current user is unlocked. * * @returns {@code true} if a potential service implementation was found. */ public boolean start() { if (isServiceMissing()) return false; synchronized (mLock) { bindBestPackageLocked(mServicePackageName, false); } Loading Loading @@ -173,6 +177,17 @@ public class ServiceWatcher implements ServiceConnection { return true; } /** * Check if any instance of this service is present on the device, * regardless of it being encryption-aware or not. */ private boolean isServiceMissing() { final Intent intent = new Intent(mAction); final int flags = PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE; return mPm.queryIntentServicesAsUser(intent, flags, mCurrentUserId).isEmpty(); } /** * Searches and binds to the best package, or do nothing if the best package * is already bound, unless force rebinding is requested. Loading @@ -181,7 +196,7 @@ public class ServiceWatcher implements ServiceConnection { * packages if it is {@code null}. * @param forceRebind Force a rebinding to the best package if it's already * bound. * @return {@code true} if a valid package was found to bind to. * @returns {@code true} if a valid package was found to bind to. */ private boolean bindBestPackageLocked(String justCheckThisPackage, boolean forceRebind) { Intent intent = new Intent(mAction); Loading Loading
services/core/java/com/android/server/ServiceWatcher.java +16 −1 Original line number Diff line number Diff line Loading @@ -141,8 +141,12 @@ public class ServiceWatcher implements ServiceConnection { * <p> * Note that if there are no matching encryption-aware services, we may not * bind to a real service until after the current user is unlocked. * * @returns {@code true} if a potential service implementation was found. */ public boolean start() { if (isServiceMissing()) return false; synchronized (mLock) { bindBestPackageLocked(mServicePackageName, false); } Loading Loading @@ -173,6 +177,17 @@ public class ServiceWatcher implements ServiceConnection { return true; } /** * Check if any instance of this service is present on the device, * regardless of it being encryption-aware or not. */ private boolean isServiceMissing() { final Intent intent = new Intent(mAction); final int flags = PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE; return mPm.queryIntentServicesAsUser(intent, flags, mCurrentUserId).isEmpty(); } /** * Searches and binds to the best package, or do nothing if the best package * is already bound, unless force rebinding is requested. Loading @@ -181,7 +196,7 @@ public class ServiceWatcher implements ServiceConnection { * packages if it is {@code null}. * @param forceRebind Force a rebinding to the best package if it's already * bound. * @return {@code true} if a valid package was found to bind to. * @returns {@code true} if a valid package was found to bind to. */ private boolean bindBestPackageLocked(String justCheckThisPackage, boolean forceRebind) { Intent intent = new Intent(mAction); Loading