summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xapi/system-current.txt35
-rw-r--r--core/java/android/hardware/location/ContextHubClient.java5
-rw-r--r--core/java/android/hardware/location/ContextHubManager.java87
-rw-r--r--core/res/AndroidManifest.xml8
-rw-r--r--services/core/java/com/android/server/location/ContextHubClientBroker.java19
-rw-r--r--services/core/java/com/android/server/location/ContextHubServiceUtil.java14
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);
}
/**