0
Я пытаюсь получить текущее местоположение пользователя с помощью LocationListener в FragmentActivity (для поддержки SupportMapFragment), который реализует LocationListener.FragmentActivity и LocationListener
Это мой код: не
private void setLocationManager() {
if (lm == null)
lm = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
// exceptions will be thrown if provider is not permitted.
try {
gps_enabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
} catch (Exception ex) {
}
try {
network_enabled = lm
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
} catch (Exception ex) {
}
if (gps_enabled) {
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
Toast.makeText(HomeActivity.this, "Refresh GPS", Toast.LENGTH_SHORT)
.show();
} else {
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0,
this);
Toast.makeText(HomeActivity.this, "Refresh NET", Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onLocationChanged(Location location) {
MyCurrentLocation = location;
Toast.makeText(
HomeActivity.this,
"Refresh == my lat : " + MyCurrentLocation.getLatitude()
+ " my long : " + MyCurrentLocation.getLongitude(),
Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(HomeActivity.this, provider, Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(HomeActivity.this, provider, Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
У меня проблемы есть:
- переопределенный метод: onLocationChanged никогда не вызывается с помощью сетевого провайдера
- переопределенного метод: onProviderDisabled не вызывается каждый раз ..
И никогда не использую: lm.remove Обновление метода
Рассматривали ли вы новые функции в Службе воспроизведения. Из этого можно извлечь текущее местоположение. https://developer.android.com/training/location/retrieve-current.html – Kuffs
Сетевой провайдер, не вызывающий onLocationChanged, является известной проблемой, которая появилась при выпуске плавного провайдера. Проверьте https://code.google.com/p/android/issues/detail?id=57707 и https://code.google.com/p/android/issues/detail?id=55896. Забавно, что приложение карт (которое, вероятно, использует плавный провайдер) получает обновления от Network Provider просто отлично. На данный момент я настоятельно рекомендую использовать платный провайдер. – linakis
+1 Бороро! Перезагрузка сделала трюки на моем Samsung Galaxy S3, Android скучно .. – eento