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>
This commit is contained in:
@ -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) {
|
||||
|
@ -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 {
|
||||
|
Reference in New Issue
Block a user