Merge "Handle other providers in isAllowedProviderSafe()" into jb-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
dfc8e799ed
@@ -640,7 +640,27 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
|
|||||||
== PackageManager.PERMISSION_GRANTED) ||
|
== PackageManager.PERMISSION_GRANTED) ||
|
||||||
(mContext.checkCallingOrSelfPermission(ACCESS_COARSE_LOCATION)
|
(mContext.checkCallingOrSelfPermission(ACCESS_COARSE_LOCATION)
|
||||||
== PackageManager.PERMISSION_GRANTED);
|
== PackageManager.PERMISSION_GRANTED);
|
||||||
|
} else {
|
||||||
|
// mock providers
|
||||||
|
LocationProviderInterface lp = mMockProviders.get(provider);
|
||||||
|
if (lp != null) {
|
||||||
|
ProviderProperties properties = lp.getProperties();
|
||||||
|
if (properties != null) {
|
||||||
|
if (properties.mRequiresSatellite) {
|
||||||
|
// provider requiring satellites require FINE permission
|
||||||
|
return mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION)
|
||||||
|
== PackageManager.PERMISSION_GRANTED;
|
||||||
|
} else if (properties.mRequiresNetwork || properties.mRequiresCell) {
|
||||||
|
// provider requiring network and or cell require COARSE or FINE
|
||||||
|
return (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION)
|
||||||
|
== PackageManager.PERMISSION_GRANTED) ||
|
||||||
|
(mContext.checkCallingOrSelfPermission(ACCESS_COARSE_LOCATION)
|
||||||
|
== PackageManager.PERMISSION_GRANTED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user