【发布时间】:2014-12-29 10:58:45
【问题描述】:
我正在开发一个应用程序,它首先检查网络和 Gps 的活动,如果至少存在网络,它会尝试获取当前位置(不需要特殊精度)。 在WIFI模式下,一切正常。在 GPS 模式下(如果可用),一切也都很完美。 问题在于移动互联网(没有 WIFI/GPS)。在这种模式下,onLocationChanged 方法会在位置请求开始后给我一些坐标。准确度肯定很差。问题是我找不到 WIFI 和 MOBILE 互联网之间的区别。
..代码
private void startLocationListeners(){
try
{
if (isNetworkEnabled)
{
if (isGPSEnabled)
{
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0, locationListener);
Log.d("TAG", "GPS");
}
else{
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0, locationListener);
Log.d("TAG", "Network");
}
}
}
catch (Exception e)
{
Log.e("Error TAG : LocationManager", "problem", e);
}
}
..这里的onLocation改变了
public void onLocationChanged(Location location) {
stopLocationListeners();
coordinates=String.valueOf(location.getLatitude())+","+String.valueOf(location.getLongitude());
Toast.makeText(context, coordinates, Toast.LENGTH_SHORT).show();
startCamera();
}
};
有什么建议吗?
【问题讨论】: