我想知道为什么我的应用仍会找到位置,尽管GPS被禁用。所以我问myselft为什么这是可能的,我对此知之甚少。也许NETWORK_PROVIDER不需要GPS?
我保证,GPS确实被禁用了。
谁能告诉我这是怎么回事?
我在我的应用程序中有这个:
oncreate()中的:
locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
方式:
public void getGpsLocation(){
locationManager.requestSingleUpdate(LocationManager.NETWORK_PROVIDER, myLocationListener, this.getMainLooper());
}
监听器:
LocationListener myLocationListener = new LocationListener() {
// When location has changed
public void onLocationChanged(Location location) {
locationManager.removeUpdates(this);
locationAll = location;
// positionOnceFound = true --> location was already found and no further update necessary
//if (location != null && positionOnceFound == false)
if (location != null)
{
// location is found, no more update necessary --> true
positionOnceFound = true;
// get Lat/Lon of my current position
myPosLat = location.getLatitude();
myPosLon = location.getLongitude();
// For calculating the point B(right top corner) and point C(left bottom corner
// Lat/Lon of B and C needed for getting the prices from this area around my position
double dy = 5.0 / 110.54; // 5.0 -> 5km to vertical
double dx = 5.0 / (111.320 * Math.cos(myPosLat / 180 * Math.PI)); // 5km to horizontal
// Get point B
rightTopCornerLon = myPosLon + dx;
rightTopCornerLat = myPosLat + dy;
// Get point C
leftBottomCornerLon = myPosLon - dx;
leftBottomCornerLat = myPosLat - dy;
System.out.println("Alat: " + myPosLat + " Alon: " + myPosLon + " Blat: " + rightTopCornerLat + " Blon: " + rightTopCornerLon +
" Clat: " + leftBottomCornerLat + " Clon: " + leftBottomCornerLon);
getCityName(isItStartOrStop);
}
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
};
答案 0 :(得分:0)
是的,NETWORK_PROVIDER不需要GPS,但NETWORK_PROVIDER通过无线网络站点获取低精度的位置。
答案 1 :(得分:0)
网络提供商需要ACCESS_COARSE_LOCATION
的许可,因此它可以使用WIFI网络或移动网络为您提供位置更新,这可能不太准确,但比使用全球定位系统。
答案 2 :(得分:0)
是的,NETWORK_PROVIDER不需要GPS。 如果GPS未启用但位置不准确,网络提供商将通过无线网络访问您的位置。启用GPS将为您提供更准确的位置结果。 您在meanifeast文件中访问粗略位置和访问精确位置权限区分它。通过访问粗略位置,您将获得没有GPS的位置,但精确的位置也可以访问GPS位置 NETWORK_PROVIDER使用两种权限