我正在进行测试,我们正在计算我们想要集成到我们硬件中的Android手机和GPS设备的GPS位置。但为了使测试准确,手机只需要使用GPS,而不是手机信号塔和WiFi。
这是代码,我在其中设置手机使用的服务。
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationManager
.requestLocationUpdates(LocationManager.GPS_PROVIDER,
MIN_MILLISECONDS_BEFORE_UPDATE_LOCATION,
MIN_METERS_BEFORE_UPDATE_LOCATION,
new MyLocationListener(this));
那么手机只能使用GPS来获取它的位置吗?我可以'关闭WIFI,因为手机正在向我们的数据库发送当前位置。 GPS设备和手机在测试时都在固定的位置。
我知道如何使用GPS获取位置已有问题,但我想确定,该手机只使用GPS。
答案 0 :(得分:0)
它可以通过仅使用GPS找到位置(假设位置是可到达的,例如不在地下或类似的东西)通过使用互联网,它只是更快地找到位置。由于您的设备是静止的,您应该没问题。
详细了解here。
答案 1 :(得分:0)
默认它使用gps,如果gps不工作,它将使用互联网,所以你不需要怀疑的东西
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
对getLastKnownLocation()
的调用不会阻止 - 这意味着如果当前没有可用位置,它将返回null - 所以你可能想看看将LocationListener传递给{{3相反,它会为您提供位置的异步更新。
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
}
}
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,2000,10,locationListener); 如果您想使用GPS,则需要为应用程序提供requestLocationUpdates() method。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
您可能还想在GPS不可用时添加ACCESS_FINE_LOCATION permission,并使用ACCESS_COARSE_LOCATION permission选择您的位置提供商。