From 5e35b2d00b20b9ac88d4813bdef989e7159f064d Mon Sep 17 00:00:00 2001 From: Hall Liu Date: Thu, 15 Mar 2018 13:49:46 -0700 Subject: [PATCH] Modify LocationAccessPolicy to use LocationManager Remove the direct settings lookup since it's been deprecated. Bug: 72886046 Test: run CTS Change-Id: I00f11f46f20f86e91147b1232263b6c9a5d8c6b4 (cherry picked from commit d7a1c9dd760bd85a74c63012647fe00affd6ee9e) --- .../telephony/LocationAccessPolicy.java | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/telephony/java/android/telephony/LocationAccessPolicy.java b/telephony/java/android/telephony/LocationAccessPolicy.java index 26ffe3216bdce..6480aab06febb 100644 --- a/telephony/java/android/telephony/LocationAccessPolicy.java +++ b/telephony/java/android/telephony/LocationAccessPolicy.java @@ -21,31 +21,25 @@ import android.annotation.NonNull; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.AppOpsManager; -import android.content.BroadcastReceiver; import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.location.LocationManager; import android.os.Binder; -import android.os.Build; import android.os.Process; import android.os.Trace; import android.os.UserHandle; import android.os.UserManager; -import android.provider.Settings; -import android.util.SparseBooleanArray; +import android.util.Log; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * Helper for performing location access checks. * @hide */ public final class LocationAccessPolicy { + private static final String LOG_TAG = LocationAccessPolicy.class.getSimpleName(); /** * API to determine if the caller has permissions to get cell location. * @@ -94,10 +88,12 @@ public final class LocationAccessPolicy { } private static boolean isLocationModeEnabled(@NonNull Context context, @UserIdInt int userId) { - int locationMode = Settings.Secure.getIntForUser(context.getContentResolver(), - Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF, userId); - return locationMode != Settings.Secure.LOCATION_MODE_OFF - && locationMode != Settings.Secure.LOCATION_MODE_SENSORS_ONLY; + LocationManager locationManager = context.getSystemService(LocationManager.class); + if (locationManager == null) { + Log.w(LOG_TAG, "Couldn't get location manager, denying location access"); + return false; + } + return locationManager.isLocationEnabledForUser(UserHandle.of(userId)); } private static boolean checkInteractAcrossUsersFull(@NonNull Context context) {