summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/ambientcontext/AmbientContextManagerPerUserService.java16
-rw-r--r--services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java2
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);
}