2013-03-11 4 views
0

Я тестирую свое приложение на реальном устройстве и получаю местоположение null, когда GPS включен. Когда я тестирую эмулятор с фиктивными координатами, он работает нормально. Что не так?Местоположение null на устройстве

locationManager = (LocationManager) context.getSystemService(context.LOCATION_SERVICE); 
listener = new MyLocationListener(); 
viaGps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
viaNetwork = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 
if (!viaGps && !viaNetwork) { 
    tracking = false; 
} else { 
    if (viaGps) { 
     Log.d("", "gps is on"); 
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener); 
     location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
    }else if (viaNetwork) { 
     Log.d("", "network is on"); 
     locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener); 
     location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
    } 
    if (location == null) { 
     Log.d("", "location not fouond"); 
    } 
+0

последнее известное местоположение может быть пустым, но вы должны получить Ваше местоположение в LocationListener, –

+0

У вас есть сим-карту в телефоне? – zwebie

+0

Да, у меня есть сим-карта в моем телефоне –

ответ

0

Вам нужен Расположение слушателя:

Следуйте documentation

Обновление:

Вы также можете попробовать этот простой способ: What is the simplest and most robust way to get the user's current location in Android?

+0

Я уже зарегистрировал приемник местоположения с именем locationListener. –

+0

Вы получаете документацию? см. мое обновление для другой реализации. – madlymad

0

Попробуйте использовать это, решена моя проблема

double latitude = gps.getLatitude(); 
    double longitude = gps.getLongitude(); 

Также проверьте ваше разрешение

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>