diff options
2 files changed, 13 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/ambientcontext/AmbientContextManagerPerUserService.java b/services/core/java/com/android/server/ambientcontext/AmbientContextManagerPerUserService.java index 42a7423725a3..766283b92d91 100644 --- a/services/core/java/com/android/server/ambientcontext/AmbientContextManagerPerUserService.java +++ b/services/core/java/com/android/server/ambientcontext/AmbientContextManagerPerUserService.java @@ -217,9 +217,13 @@ final class AmbientContextManagerPerUserService extends RemoteCallback detectionResultCallback, RemoteCallback statusCallback) { Slog.d(TAG, "Requested detection of " + request.getEventTypes()); synchronized (mLock) { - ensureRemoteServiceInitiated(); - mRemoteService.startDetection(request, callingPackage, detectionResultCallback, - statusCallback); + if (setUpServiceIfNeeded()) { + ensureRemoteServiceInitiated(); + mRemoteService.startDetection(request, callingPackage, detectionResultCallback, + statusCallback); + } else { + Slog.w(TAG, "No valid component found for AmbientContextDetectionService"); + } } } @@ -371,8 +375,10 @@ final class AmbientContextManagerPerUserService extends void stopDetection(String packageName) { Slog.d(TAG, "Stop detection for " + packageName); synchronized (mLock) { - ensureRemoteServiceInitiated(); - mRemoteService.stopDetection(packageName); + if (mComponentName != null) { + ensureRemoteServiceInitiated(); + mRemoteService.stopDetection(packageName); + } } } diff --git a/services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java b/services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java index 2cdf7e7c7133..774b340206e2 100644 --- a/services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java +++ b/services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java @@ -249,6 +249,8 @@ public class AmbientContextManagerService extends Objects.requireNonNull(eventTypes); Objects.requireNonNull(callingPackage); assertCalledByPackageOwner(callingPackage); + mContext.enforceCallingOrSelfPermission( + Manifest.permission.ACCESS_AMBIENT_CONTEXT_EVENT, TAG); mService.onStartConsentActivity(eventTypes, callingPackage); } |