Я должен получить текущее местоположение пользователя, для этого я внедрил следующий код:
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
Вот мой класс LocationListener:
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() + "");
lat = location.getLatitude();
lng = location.getLongitude();
Toast.makeText(NearActivity.this, "lng=" + lng + " lat=" + lat,
Toast.LENGTH_SHORT);
showProgress();
}
}
Приведенный выше код не устанавливает переменные lat и lng, которые являются глобальными переменными. Почему GPS не в состоянии обеспечить кординаты?
Спасибо заранее.
Вы установили разрешения?
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET"/>
Местоположение - это класс, класс, который содержит свойства местоположения. Это не то же самое, что и поставщик GPS. Вот как вы получаете свое текущее местоположение от поставщика GPS.
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location lastKnownLoc = m.getLastKnownLocation(LocationManager.GPS_PROVIDER);