diff options
6 files changed, 42 insertions, 126 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index fc88292798c4..09684d8809e4 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -5,7 +5,6 @@ package android { field public static final String ACCESS_AMBIENT_LIGHT_STATS = "android.permission.ACCESS_AMBIENT_LIGHT_STATS"; field public static final String ACCESS_BROADCAST_RADIO = "android.permission.ACCESS_BROADCAST_RADIO"; field public static final String ACCESS_CACHE_FILESYSTEM = "android.permission.ACCESS_CACHE_FILESYSTEM"; - field public static final String ACCESS_CONTEXT_HUB = "android.permission.ACCESS_CONTEXT_HUB"; field public static final String ACCESS_DRM_CERTIFICATES = "android.permission.ACCESS_DRM_CERTIFICATES"; field @Deprecated public static final String ACCESS_FM_RADIO = "android.permission.ACCESS_FM_RADIO"; field public static final String ACCESS_INSTANT_APPS = "android.permission.ACCESS_INSTANT_APPS"; @@ -2861,7 +2860,7 @@ package android.hardware.location { public class ContextHubClient implements java.io.Closeable { method public void close(); method @NonNull public android.hardware.location.ContextHubInfo getAttachedHub(); - method @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public int sendMessageToNanoApp(@NonNull android.hardware.location.NanoAppMessage); + method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int sendMessageToNanoApp(@NonNull android.hardware.location.NanoAppMessage); } public class ContextHubClientCallback { @@ -2910,24 +2909,24 @@ package android.hardware.location { } public final class ContextHubManager { - method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public android.hardware.location.ContextHubClient createClient(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.ContextHubClientCallback, @NonNull java.util.concurrent.Executor); - method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public android.hardware.location.ContextHubClient createClient(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.ContextHubClientCallback); - method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public android.hardware.location.ContextHubClient createClient(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.app.PendingIntent, long); - method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public android.hardware.location.ContextHubTransaction<java.lang.Void> disableNanoApp(@NonNull android.hardware.location.ContextHubInfo, long); - method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public android.hardware.location.ContextHubTransaction<java.lang.Void> enableNanoApp(@NonNull android.hardware.location.ContextHubInfo, long); - method @Deprecated @NonNull @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public int[] findNanoAppOnHub(int, @NonNull android.hardware.location.NanoAppFilter); - method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public int[] getContextHubHandles(); - method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public android.hardware.location.ContextHubInfo getContextHubInfo(int); - method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public java.util.List<android.hardware.location.ContextHubInfo> getContextHubs(); - method @Deprecated @Nullable @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public android.hardware.location.NanoAppInstanceInfo getNanoAppInstanceInfo(int); - method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public int loadNanoApp(int, @NonNull android.hardware.location.NanoApp); - method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public android.hardware.location.ContextHubTransaction<java.lang.Void> loadNanoApp(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.NanoAppBinary); - method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public android.hardware.location.ContextHubTransaction<java.util.List<android.hardware.location.NanoAppState>> queryNanoApps(@NonNull android.hardware.location.ContextHubInfo); + method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.ContextHubClient createClient(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.ContextHubClientCallback, @NonNull java.util.concurrent.Executor); + method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.ContextHubClient createClient(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.ContextHubClientCallback); + method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.ContextHubClient createClient(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.app.PendingIntent, long); + method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.ContextHubTransaction<java.lang.Void> disableNanoApp(@NonNull android.hardware.location.ContextHubInfo, long); + method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.ContextHubTransaction<java.lang.Void> enableNanoApp(@NonNull android.hardware.location.ContextHubInfo, long); + method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int[] findNanoAppOnHub(int, @NonNull android.hardware.location.NanoAppFilter); + method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int[] getContextHubHandles(); + method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.ContextHubInfo getContextHubInfo(int); + method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public java.util.List<android.hardware.location.ContextHubInfo> getContextHubs(); + method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.NanoAppInstanceInfo getNanoAppInstanceInfo(int); + method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int loadNanoApp(int, @NonNull android.hardware.location.NanoApp); + method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.ContextHubTransaction<java.lang.Void> loadNanoApp(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.NanoAppBinary); + method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.ContextHubTransaction<java.util.List<android.hardware.location.NanoAppState>> queryNanoApps(@NonNull android.hardware.location.ContextHubInfo); method @Deprecated public int registerCallback(@NonNull android.hardware.location.ContextHubManager.Callback); method @Deprecated public int registerCallback(android.hardware.location.ContextHubManager.Callback, android.os.Handler); - method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public int sendMessage(int, int, @NonNull android.hardware.location.ContextHubMessage); - method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public int unloadNanoApp(int); - method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_CONTEXT_HUB}) public android.hardware.location.ContextHubTransaction<java.lang.Void> unloadNanoApp(@NonNull android.hardware.location.ContextHubInfo, long); + method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int sendMessage(int, int, @NonNull android.hardware.location.ContextHubMessage); + method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int unloadNanoApp(int); + method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.ContextHubTransaction<java.lang.Void> unloadNanoApp(@NonNull android.hardware.location.ContextHubInfo, long); method @Deprecated public int unregisterCallback(@NonNull android.hardware.location.ContextHubManager.Callback); field public static final int EVENT_HUB_RESET = 6; // 0x6 field public static final int EVENT_NANOAPP_ABORTED = 4; // 0x4 diff --git a/core/java/android/hardware/location/ContextHubClient.java b/core/java/android/hardware/location/ContextHubClient.java index 43480ab9cc44..c6a5dd0d048d 100644 --- a/core/java/android/hardware/location/ContextHubClient.java +++ b/core/java/android/hardware/location/ContextHubClient.java @@ -136,10 +136,7 @@ public class ContextHubClient implements Closeable { * @see NanoAppMessage * @see ContextHubTransaction.Result */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @ContextHubTransaction.Result public int sendMessageToNanoApp(@NonNull NanoAppMessage message) { Objects.requireNonNull(message, "NanoAppMessage cannot be null"); diff --git a/core/java/android/hardware/location/ContextHubManager.java b/core/java/android/hardware/location/ContextHubManager.java index 1001f800df3c..a51d2c929a2c 100644 --- a/core/java/android/hardware/location/ContextHubManager.java +++ b/core/java/android/hardware/location/ContextHubManager.java @@ -44,9 +44,7 @@ import java.util.concurrent.Executor; * A class that exposes the Context hubs on a device to applications. * * Please note that this class is not expected to be used by unbundled applications. Also, calling - * applications are expected to have LOCATION_HARDWARE or ACCESS_CONTEXT_HUB permissions to use this - * class. Use of LOCATION_HARDWARE to enable access to these APIs is deprecated and may be removed - * in the future - all applications are recommended to move to the ACCESS_CONTEXT_HUB permission. + * applications are expected to have LOCATION_HARDWARE permissions to use this class. * * @hide */ @@ -198,10 +196,7 @@ public final class ContextHubManager { * new APIs. */ @Deprecated - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int[] getContextHubHandles() { try { return mService.getContextHubHandles(); @@ -222,10 +217,7 @@ public final class ContextHubManager { * new APIs. */ @Deprecated - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public ContextHubInfo getContextHubInfo(int hubHandle) { try { return mService.getContextHubInfo(hubHandle); @@ -256,10 +248,7 @@ public final class ContextHubManager { * @deprecated Use {@link #loadNanoApp(ContextHubInfo, NanoAppBinary)} instead. */ @Deprecated - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int loadNanoApp(int hubHandle, @NonNull NanoApp app) { try { return mService.loadNanoApp(hubHandle, app); @@ -286,10 +275,7 @@ public final class ContextHubManager { * @deprecated Use {@link #unloadNanoApp(ContextHubInfo, long)} instead. */ @Deprecated - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int unloadNanoApp(int nanoAppHandle) { try { return mService.unloadNanoApp(nanoAppHandle); @@ -329,10 +315,7 @@ public final class ContextHubManager { * for loaded nanoapps. */ @Deprecated - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @Nullable public NanoAppInstanceInfo getNanoAppInstanceInfo(int nanoAppHandle) { try { return mService.getNanoAppInstanceInfo(nanoAppHandle); @@ -355,10 +338,7 @@ public final class ContextHubManager { * for loaded nanoapps. */ @Deprecated - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public int[] findNanoAppOnHub(int hubHandle, @NonNull NanoAppFilter filter) { try { return mService.findNanoAppOnHub(hubHandle, filter); @@ -393,10 +373,7 @@ public final class ContextHubManager { * or {@link #createClient(ContextHubInfo, ContextHubClientCallback)}. */ @Deprecated - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int sendMessage(int hubHandle, int nanoAppHandle, @NonNull ContextHubMessage message) { try { return mService.sendMessage(hubHandle, nanoAppHandle, message); @@ -412,10 +389,7 @@ public final class ContextHubManager { * * @see ContextHubInfo */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public List<ContextHubInfo> getContextHubs() { try { return mService.getContextHubs(); @@ -492,10 +466,7 @@ public final class ContextHubManager { * * @see NanoAppBinary */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public ContextHubTransaction<Void> loadNanoApp( @NonNull ContextHubInfo hubInfo, @NonNull NanoAppBinary appBinary) { Objects.requireNonNull(hubInfo, "ContextHubInfo cannot be null"); @@ -524,10 +495,7 @@ public final class ContextHubManager { * * @throws NullPointerException if hubInfo is null */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public ContextHubTransaction<Void> unloadNanoApp( @NonNull ContextHubInfo hubInfo, long nanoAppId) { Objects.requireNonNull(hubInfo, "ContextHubInfo cannot be null"); @@ -555,10 +523,7 @@ public final class ContextHubManager { * * @throws NullPointerException if hubInfo is null */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public ContextHubTransaction<Void> enableNanoApp( @NonNull ContextHubInfo hubInfo, long nanoAppId) { Objects.requireNonNull(hubInfo, "ContextHubInfo cannot be null"); @@ -586,10 +551,7 @@ public final class ContextHubManager { * * @throws NullPointerException if hubInfo is null */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public ContextHubTransaction<Void> disableNanoApp( @NonNull ContextHubInfo hubInfo, long nanoAppId) { Objects.requireNonNull(hubInfo, "ContextHubInfo cannot be null"); @@ -616,10 +578,7 @@ public final class ContextHubManager { * * @throws NullPointerException if hubInfo is null */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public ContextHubTransaction<List<NanoAppState>> queryNanoApps( @NonNull ContextHubInfo hubInfo) { Objects.requireNonNull(hubInfo, "ContextHubInfo cannot be null"); @@ -765,10 +724,7 @@ public final class ContextHubManager { * * @see ContextHubClientCallback */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public ContextHubClient createClient( @NonNull ContextHubInfo hubInfo, @NonNull ContextHubClientCallback callback, @NonNull @CallbackExecutor Executor executor) { @@ -805,10 +761,7 @@ public final class ContextHubManager { * * @see ContextHubClientCallback */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public ContextHubClient createClient( @NonNull ContextHubInfo hubInfo, @NonNull ContextHubClientCallback callback) { return createClient(hubInfo, callback, new HandlerExecutor(Handler.getMain())); @@ -827,9 +780,6 @@ public final class ContextHubManager { * If a client is regenerated, the host endpoint identifier attached to messages sent to the * nanoapp remains consistent, even if the original process has exited. * - * To avoid unintentionally spreading data from the Context Hub to external applications, it is - * strongly recommended that the PendingIntent supplied to this API is an explicit intent. - * * If registered successfully, intents will be delivered regarding events or messages from the * specified nanoapp from the attached Context Hub. The intent will have an extra * {@link ContextHubManager.EXTRA_CONTEXT_HUB_INFO} of type {@link ContextHubInfo}, which @@ -854,10 +804,7 @@ public final class ContextHubManager { * @throws IllegalStateException if there were too many registered clients at the service * @throws NullPointerException if pendingIntent or hubInfo is null */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public ContextHubClient createClient( @NonNull ContextHubInfo hubInfo, @NonNull PendingIntent pendingIntent, long nanoAppId) { Objects.requireNonNull(pendingIntent); diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index d48e02913eaf..2665e8a8dd8b 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1527,14 +1527,6 @@ android:protectionLevel="signature|privileged" /> <uses-permission android:name="android.permission.LOCATION_HARDWARE"/> - <!-- @SystemApi Allows an application to use the Context Hub. - <p>Not for use by third-party applications. - @hide - --> - <permission android:name="android.permission.ACCESS_CONTEXT_HUB" - android:protectionLevel="signature|privileged" /> - <uses-permission android:name="android.permission.ACCESS_CONTEXT_HUB"/> - <!-- @SystemApi Allows an application to create mock location providers for testing. <p>Protection level: signature @hide diff --git a/services/core/java/com/android/server/location/ContextHubClientBroker.java b/services/core/java/com/android/server/location/ContextHubClientBroker.java index 54f024f342fd..45d9bae23e26 100644 --- a/services/core/java/com/android/server/location/ContextHubClientBroker.java +++ b/services/core/java/com/android/server/location/ContextHubClientBroker.java @@ -16,8 +16,6 @@ package com.android.server.location; -import static android.content.pm.PackageManager.PERMISSION_GRANTED; - import android.Manifest; import android.app.PendingIntent; import android.content.Context; @@ -111,11 +109,6 @@ public class ContextHubClientBroker extends IContextHubClient.Stub private AtomicBoolean mIsPendingIntentCancelled = new AtomicBoolean(false); /* - * True if the application creating the client has the ACCESS_CONTEXT_HUB permission. - */ - private final boolean mHasAccessContextHubPermission; - - /* * Helper class to manage registered PendingIntent requests from the client. */ private class PendingIntentRequest { @@ -172,9 +165,6 @@ public class ContextHubClientBroker extends IContextHubClient.Stub mCallbackInterface = callback; mPendingIntentRequest = new PendingIntentRequest(); mPackage = mContext.getPackageManager().getNameForUid(Binder.getCallingUid()); - - mHasAccessContextHubPermission = context.checkCallingPermission( - Manifest.permission.ACCESS_CONTEXT_HUB) == PERMISSION_GRANTED; } /* package */ ContextHubClientBroker( @@ -188,9 +178,6 @@ public class ContextHubClientBroker extends IContextHubClient.Stub mHostEndPointId = hostEndPointId; mPendingIntentRequest = new PendingIntentRequest(pendingIntent, nanoAppId); mPackage = pendingIntent.getCreatorPackage(); - - mHasAccessContextHubPermission = context.checkCallingPermission( - Manifest.permission.ACCESS_CONTEXT_HUB) == PERMISSION_GRANTED; } /** @@ -428,12 +415,10 @@ public class ContextHubClientBroker extends IContextHubClient.Stub */ private void doSendPendingIntent(PendingIntent pendingIntent, Intent intent) { try { - String requiredPermission = mHasAccessContextHubPermission - ? Manifest.permission.ACCESS_CONTEXT_HUB - : Manifest.permission.LOCATION_HARDWARE; pendingIntent.send( mContext, 0 /* code */, intent, null /* onFinished */, null /* Handler */, - requiredPermission, null /* options */); + Manifest.permission.LOCATION_HARDWARE /* requiredPermission */, + null /* options */); } catch (PendingIntent.CanceledException e) { mIsPendingIntentCancelled.set(true); // The PendingIntent is no longer valid diff --git a/services/core/java/com/android/server/location/ContextHubServiceUtil.java b/services/core/java/com/android/server/location/ContextHubServiceUtil.java index 76cd9ceaf7c4..033437a53891 100644 --- a/services/core/java/com/android/server/location/ContextHubServiceUtil.java +++ b/services/core/java/com/android/server/location/ContextHubServiceUtil.java @@ -16,8 +16,6 @@ package com.android.server.location; -import static android.content.pm.PackageManager.PERMISSION_GRANTED; - import android.Manifest; import android.content.Context; import android.hardware.contexthub.V1_0.ContextHub; @@ -32,10 +30,11 @@ import android.hardware.location.NanoAppMessage; import android.hardware.location.NanoAppState; import android.util.Log; -import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.Iterator; import java.util.List; +import java.util.ArrayList; /** * A class encapsulating helper functions used by the ContextHubService class @@ -43,7 +42,8 @@ import java.util.List; /* package */ class ContextHubServiceUtil { private static final String TAG = "ContextHubServiceUtil"; private static final String HARDWARE_PERMISSION = Manifest.permission.LOCATION_HARDWARE; - private static final String CONTEXT_HUB_PERMISSION = Manifest.permission.ACCESS_CONTEXT_HUB; + private static final String ENFORCE_HW_PERMISSION_MESSAGE = "Permission '" + + HARDWARE_PERMISSION + "' not granted to access ContextHub Hardware"; /** * Creates a ConcurrentHashMap of the Context Hub ID to the ContextHubInfo object given an @@ -200,11 +200,7 @@ import java.util.List; */ /* package */ static void checkPermissions(Context context) { - if (context.checkCallingPermission(HARDWARE_PERMISSION) != PERMISSION_GRANTED - && context.checkCallingPermission(CONTEXT_HUB_PERMISSION) != PERMISSION_GRANTED) { - throw new SecurityException( - "LOCATION_HARDWARE or ACCESS_CONTEXT_HUB permission required to use Context Hub"); - } + context.enforceCallingPermission(HARDWARE_PERMISSION, ENFORCE_HW_PERMISSION_MESSAGE); } /** |