summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2009-05-19 09:14:41 -0400
committerMike Lockwood <lockwood@android.com>2009-05-19 13:53:24 -0400
commitac61f6bc2b24f7ab03cdb0089c67c4034ea8549c (patch)
treef43610491a25a94d82fa7e404c20467a42bf0545
parent12bb9471cb9ce2eb48d8e9817841f43e7220566f (diff)
downloadframeworks_base-ac61f6bc2b24f7ab03cdb0089c67c4034ea8549c.zip
frameworks_base-ac61f6bc2b24f7ab03cdb0089c67c4034ea8549c.tar.gz
frameworks_base-ac61f6bc2b24f7ab03cdb0089c67c4034ea8549c.tar.bz2
Telephony: Allow getCellLocation() if client has permission ACCESS_FINE_LOCATION
ACCESS_FINE_LOCATION should imply ACCESS_COARSE_LOCATION, so either of these permissions should be sufficient to allow TelephonyManager.getCellLocation(). Signed-off-by: Mike Lockwood <lockwood@android.com>
-rw-r--r--services/java/com/android/server/TelephonyRegistry.java10
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java5
2 files changed, 10 insertions, 5 deletions
diff --git a/services/java/com/android/server/TelephonyRegistry.java b/services/java/com/android/server/TelephonyRegistry.java
index 22af02b..88f47fd 100644
--- a/services/java/com/android/server/TelephonyRegistry.java
+++ b/services/java/com/android/server/TelephonyRegistry.java
@@ -112,9 +112,13 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
if (events != 0) {
// check permissions
if ((events & PhoneStateListener.LISTEN_CELL_LOCATION) != 0) {
- mContext.enforceCallingOrSelfPermission(
- android.Manifest.permission.ACCESS_COARSE_LOCATION, null);
-
+ // ACCESS_FINE_LOCATION implies ACCESS_COARSE_LOCATION
+ if (mContext.checkCallingPermission(
+ android.Manifest.permission.ACCESS_FINE_LOCATION)
+ != PackageManager.PERMISSION_GRANTED) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.ACCESS_COARSE_LOCATION, null);
+ }
}
synchronized (mRecords) {
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index e836991..49a7750 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -192,8 +192,9 @@ public class TelephonyManager {
/**
* Returns the current location of the device.
*
- * <p>Requires Permission: {@link android.Manifest.permission#ACCESS_COARSE_LOCATION
- * ACCESS_COARSE_LOCATION}.
+ * <p>Requires Permission:
+ * {@link android.Manifest.permission#ACCESS_COARSE_LOCATION ACCESS_COARSE_LOCATION} or
+ * {@link android.Manifest.permission#ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION}.
*/
public CellLocation getCellLocation() {
try {