diff --git a/core/api/system-current.txt b/core/api/system-current.txt index c20b2e054980d..1d1c7e8ec9aae 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -3682,7 +3682,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.ACCESS_CONTEXT_HUB) public int sendMessageToNanoApp(@NonNull android.hardware.location.NanoAppMessage); } public class ContextHubClientCallback { @@ -3733,26 +3733,26 @@ 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(@Nullable android.content.Context, @NonNull android.hardware.location.ContextHubInfo, @NonNull java.util.concurrent.Executor, @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.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(@Nullable android.content.Context, @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.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 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 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 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 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> queryNanoApps(@NonNull android.hardware.location.ContextHubInfo); + method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubClient createClient(@Nullable android.content.Context, @NonNull android.hardware.location.ContextHubInfo, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.location.ContextHubClientCallback); + method @NonNull @RequiresPermission(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(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(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubClient createClient(@Nullable android.content.Context, @NonNull android.hardware.location.ContextHubInfo, @NonNull android.app.PendingIntent, long); + method @NonNull @RequiresPermission(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(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction disableNanoApp(@NonNull android.hardware.location.ContextHubInfo, long); + method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction enableNanoApp(@NonNull android.hardware.location.ContextHubInfo, long); + method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public int[] findNanoAppOnHub(int, @NonNull android.hardware.location.NanoAppFilter); + method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public int[] getContextHubHandles(); + method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubInfo getContextHubInfo(int); + method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public java.util.List getContextHubs(); + method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.NanoAppInstanceInfo getNanoAppInstanceInfo(int); + method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public int loadNanoApp(int, @NonNull android.hardware.location.NanoApp); + method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction loadNanoApp(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.NanoAppBinary); + method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction> 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 unloadNanoApp(@NonNull android.hardware.location.ContextHubInfo, long); + method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public int sendMessage(int, int, @NonNull android.hardware.location.ContextHubMessage); + method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public int unloadNanoApp(int); + method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction unloadNanoApp(@NonNull android.hardware.location.ContextHubInfo, long); method @Deprecated public int unregisterCallback(@NonNull android.hardware.location.ContextHubManager.Callback); field public static final int AUTHORIZATION_DENIED = 0; // 0x0 field public static final int AUTHORIZATION_DENIED_GRACE_PERIOD = 1; // 0x1 diff --git a/core/java/android/hardware/location/ContextHubClient.java b/core/java/android/hardware/location/ContextHubClient.java index 21ac71cb91636..bcdd519b10061 100644 --- a/core/java/android/hardware/location/ContextHubClient.java +++ b/core/java/android/hardware/location/ContextHubClient.java @@ -152,10 +152,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.ACCESS_CONTEXT_HUB) @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 f69a7d7e5f16d..7740698150def 100644 --- a/core/java/android/hardware/location/ContextHubManager.java +++ b/core/java/android/hardware/location/ContextHubManager.java @@ -47,9 +47,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 the ACCESS_CONTEXT_HUB permission to use this class. * * @hide */ @@ -252,10 +250,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.ACCESS_CONTEXT_HUB) public int[] getContextHubHandles() { try { return mService.getContextHubHandles(); @@ -276,10 +271,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.ACCESS_CONTEXT_HUB) public ContextHubInfo getContextHubInfo(int hubHandle) { try { return mService.getContextHubInfo(hubHandle); @@ -310,10 +302,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.ACCESS_CONTEXT_HUB) public int loadNanoApp(int hubHandle, @NonNull NanoApp app) { try { return mService.loadNanoApp(hubHandle, app); @@ -340,10 +329,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.ACCESS_CONTEXT_HUB) public int unloadNanoApp(int nanoAppHandle) { try { return mService.unloadNanoApp(nanoAppHandle); @@ -383,10 +369,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.ACCESS_CONTEXT_HUB) @Nullable public NanoAppInstanceInfo getNanoAppInstanceInfo(int nanoAppHandle) { try { return mService.getNanoAppInstanceInfo(nanoAppHandle); @@ -409,10 +392,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.ACCESS_CONTEXT_HUB) @NonNull public int[] findNanoAppOnHub(int hubHandle, @NonNull NanoAppFilter filter) { try { return mService.findNanoAppOnHub(hubHandle, filter); @@ -447,10 +427,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.ACCESS_CONTEXT_HUB) public int sendMessage(int hubHandle, int nanoAppHandle, @NonNull ContextHubMessage message) { try { return mService.sendMessage(hubHandle, nanoAppHandle, message); @@ -466,10 +443,7 @@ public final class ContextHubManager { * * @see ContextHubInfo */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) @NonNull public List getContextHubs() { try { return mService.getContextHubs(); @@ -546,10 +520,7 @@ public final class ContextHubManager { * * @see NanoAppBinary */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) @NonNull public ContextHubTransaction loadNanoApp( @NonNull ContextHubInfo hubInfo, @NonNull NanoAppBinary appBinary) { Objects.requireNonNull(hubInfo, "ContextHubInfo cannot be null"); @@ -578,10 +549,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.ACCESS_CONTEXT_HUB) @NonNull public ContextHubTransaction unloadNanoApp( @NonNull ContextHubInfo hubInfo, long nanoAppId) { Objects.requireNonNull(hubInfo, "ContextHubInfo cannot be null"); @@ -609,10 +577,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.ACCESS_CONTEXT_HUB) @NonNull public ContextHubTransaction enableNanoApp( @NonNull ContextHubInfo hubInfo, long nanoAppId) { Objects.requireNonNull(hubInfo, "ContextHubInfo cannot be null"); @@ -640,10 +605,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.ACCESS_CONTEXT_HUB) @NonNull public ContextHubTransaction disableNanoApp( @NonNull ContextHubInfo hubInfo, long nanoAppId) { Objects.requireNonNull(hubInfo, "ContextHubInfo cannot be null"); @@ -670,10 +632,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.ACCESS_CONTEXT_HUB) @NonNull public ContextHubTransaction> queryNanoApps( @NonNull ContextHubInfo hubInfo) { Objects.requireNonNull(hubInfo, "ContextHubInfo cannot be null"); @@ -828,10 +787,7 @@ public final class ContextHubManager { * * @see ContextHubClientCallback */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) @NonNull public ContextHubClient createClient( @Nullable Context context, @NonNull ContextHubInfo hubInfo, @NonNull @CallbackExecutor Executor executor, @@ -875,10 +831,7 @@ public final class ContextHubManager { * {@link #createClient(ContextHubInfo, Executor, String, ContextHubClientCallback)} * with the {@link Context} being set to null. */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) @NonNull public ContextHubClient createClient( @NonNull ContextHubInfo hubInfo, @NonNull ContextHubClientCallback callback, @NonNull @CallbackExecutor Executor executor) { @@ -889,10 +842,7 @@ public final class ContextHubManager { * Equivalent to {@link #createClient(ContextHubInfo, ContextHubClientCallback, Executor)} * with the executor using the main thread's Looper. */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) @NonNull public ContextHubClient createClient( @NonNull ContextHubInfo hubInfo, @NonNull ContextHubClientCallback callback) { return createClient(null /* context */, hubInfo, new HandlerExecutor(Handler.getMain()), @@ -941,10 +891,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.ACCESS_CONTEXT_HUB) @NonNull public ContextHubClient createClient( @Nullable Context context, @NonNull ContextHubInfo hubInfo, @NonNull PendingIntent pendingIntent, long nanoAppId) { @@ -974,10 +921,7 @@ public final class ContextHubManager { * Equivalent to {@link #createClient(ContextHubInfo, PendingIntent, long, String)} * with {@link Context} being set to null. */ - @RequiresPermission(anyOf = { - android.Manifest.permission.LOCATION_HARDWARE, - android.Manifest.permission.ACCESS_CONTEXT_HUB - }) + @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) @NonNull public ContextHubClient createClient( @NonNull ContextHubInfo hubInfo, @NonNull PendingIntent pendingIntent, long nanoAppId) { return createClient(null /* context */, hubInfo, pendingIntent, nanoAppId); diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java b/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java index fa33338a61e72..3da5a43ee95b4 100644 --- a/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java +++ b/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java @@ -209,11 +209,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; - /* * Map containing all nanoapps this client has a messaging channel with and whether it is * allowed to communicate over that channel. A channel is defined to have been opened if the @@ -327,8 +322,6 @@ public class ContextHubClientBroker extends IContextHubClient.Stub mPid = Binder.getCallingPid(); mUid = Binder.getCallingUid(); - mHasAccessContextHubPermission = context.checkCallingPermission( - Manifest.permission.ACCESS_CONTEXT_HUB) == PERMISSION_GRANTED; mAppOpsManager = context.getSystemService(AppOpsManager.class); startMonitoringOpChanges(); @@ -827,9 +820,7 @@ 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; + String requiredPermission = Manifest.permission.ACCESS_CONTEXT_HUB; pendingIntent.send( mContext, 0 /* code */, intent, null /* onFinished */, null /* Handler */, requiredPermission, null /* options */); diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubServiceUtil.java b/services/core/java/com/android/server/location/contexthub/ContextHubServiceUtil.java index 8361253dcd4ad..70f50c3c60f8e 100644 --- a/services/core/java/com/android/server/location/contexthub/ContextHubServiceUtil.java +++ b/services/core/java/com/android/server/location/contexthub/ContextHubServiceUtil.java @@ -30,28 +30,20 @@ import android.hardware.location.ContextHubTransaction; import android.hardware.location.NanoAppBinary; import android.hardware.location.NanoAppMessage; import android.hardware.location.NanoAppState; -import android.os.Binder; -import android.os.Build; import android.util.Log; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; -import java.util.HashSet; import java.util.List; -import java.util.Set; /** * A class encapsulating helper functions used by the ContextHubService class */ /* 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; - // A set of packages that have already been warned regarding the ACCESS_CONTEXT_HUB permission. - private static final Set PERMISSION_WARNED_PACKAGES = new HashSet(); - /** * Creates a ConcurrentHashMap of the Context Hub ID to the ContextHubInfo object given an * ArrayList of HIDL ContextHub objects. @@ -209,25 +201,12 @@ import java.util.Set; */ /* package */ static void checkPermissions(Context context) { - boolean hasLocationHardwarePermission = (context.checkCallingPermission(HARDWARE_PERMISSION) - == PERMISSION_GRANTED); boolean hasAccessContextHubPermission = (context.checkCallingPermission( CONTEXT_HUB_PERMISSION) == PERMISSION_GRANTED); - if (!hasLocationHardwarePermission && !hasAccessContextHubPermission) { + if (!hasAccessContextHubPermission) { throw new SecurityException( - "LOCATION_HARDWARE or ACCESS_CONTEXT_HUB permission required to use Context " - + "Hub"); - } - - if (!hasAccessContextHubPermission && !Build.IS_USER) { - String pkgName = context.getPackageManager().getNameForUid(Binder.getCallingUid()); - if (!PERMISSION_WARNED_PACKAGES.contains(pkgName)) { - Log.w(TAG, pkgName - + ": please use the ACCESS_CONTEXT_HUB permission rather than " - + "LOCATION_HARDWARE (will be removed for Context Hub APIs in T)"); - PERMISSION_WARNED_PACKAGES.add(pkgName); - } + "ACCESS_CONTEXT_HUB permission required to use Context Hub"); } }