我已经使用GoogleApiClient实现了一个Android应用程序,该应用程序在每移动5米后发送位置更新并且工作正常。
考虑有时候不会得到Gps Signal。在这种情况下我们怎么能得到更新谁能帮助我如何处理这种情况?
答案 0 :(得分:0)
试试这个,
Location nwLocation = appLocationService
.getLocation(LocationManager.NETWORK_PROVIDER);
if (nwLocation != null) {
double latitude = nwLocation.getLatitude();
double longitude = nwLocation.getLongitude();
Toast.makeText(
getApplicationContext(),
"Mobile Location (NW): \nLatitude: " + latitude
+ "\nLongitude: " + longitude,
Toast.LENGTH_LONG).show();
}
可以找到完整的教程here
答案 1 :(得分:0)
请看一下link。
我使用此代码来获取lat long:
public void getCurruntLocation() {
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
}
和
private class mylocationlistener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
if (location != null) {
Log.d("LOCATION CHANGED", location.getLatitude() + "");
Log.d("LOCATION CHANGED", location.getLongitude() + "");
latLng = location.getLatitude() + "," + location.getLongitude();
Toast.makeText(RecentActivity.this,
location.getLatitude() + "" + location.getLongitude(),
Toast.LENGTH_LONG).show();
}
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
和您想要获取的简单调用getCurruntLocation()
。
答案 2 :(得分:0)
GoogleApiClient使用LocationRequest类来设置参数数量。其中之一 - .setPrioryty。如果你在某些情况下使用LocationRequest.PRIORITY_HIGH_ACCURACY,由于缺乏GPRS坐标的准确性,googleApiClient不会在没有gps的情况下调用onLocationChanged()。
答案 3 :(得分:0)