Могу ли я получить местоположение пользователей, используя LocationListener и LocationManager из фрагмента? Или мне нужно использовать LocationListener из базовой деятельности и использовать интерфейс (или какой -то другой метод) для передачи данных обратно в фрагмент? Я нахожусь в процессе преобразования деятельности в фрагмент из -за пользовательского интерфейса приложения. Получение местоположения не было проблемой, когда я использовал автономные действия, однако я не могу получить никакого местоположения, возвращаемого сейчас, когда я превратил деятельность в фрагмент. < /p>
Ниже я добавляю LocationListener. Ранее объявляется как LocationLestener locationListener. < /P>
private void addLocationListener(){
locationListener = new LocationListener(){
@Override
public void onLocationChanged(Location location) {
GeoPoint userLoc = processNewLocation(location);
if(userLoc != null){
Log.d("USERLOC", userLoc.toString());
//do something with the location
}
}
@Override
public void onProviderDisabled(String provider) {
locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
} else {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}
}
@Override
public void onProviderEnabled(String provider) {
locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
} else {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
};
}
< /code>
Примечание: ProcessNewlocation просто преобразует местоположение в геопоте. Это даже не так далеко, потому что ни одно местоположение никогда не получено. < /p>
Вот код, регистрирующий слушатель с помощью менеджера местоположения < /p>
public void addLocationManager(){
locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
}
private void getLocationFromNetwork(){
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, LOCATION_REFRESH_TIME, LOCATION_REFRESH_DISTANCE, locationListener);
Log.d("GET NETWORK", "Listener registered");
}
private void getLocationFromGPS(){
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, LOCATION_REFRESH_TIME, LOCATION_REFRESH_DISTANCE, locationListener);
Log.d("GET GPS", "Listener registered");
}
private Location getLastLocation(){
Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
return lastKnownLocation;
}
Подробнее здесь: https://stackoverflow.com/questions/150 ... a-fragment
Использование LocationListener в рамках фрагмента ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Android LocationListener, AbstractMethodError в onStatusChanged и onProviderDisabled
Anonymous » » в форуме Android - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
GPS LocationListener onlocationChanged называется даже остаться в одном месте
Anonymous » » в форуме Android - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-