Dưới đây là triển khai đơn giản của giao diện LocationSource
. Trong trường hợp của tôi, tôi đăng ký cả nhà cung cấp vị trí GPS và Mạng. Như đã đề cập bởi @CommonsWare, việc triển khai có thể rất phụ thuộc vào nhu cầu của bạn. Tôi sẽ khuyên bạn nên đọc official documentation về dịch vụ Location để hiểu rõ hơn về cách sử dụng nhu cầu của bạn và tiết kiệm một số năng lượng pin
public class CurrentLocationProvider implements LocationSource, LocationListener
{
private OnLocationChangedListener listener;
private LocationManager locationManager;
public CurrentLocationProvider(Context context)
{
locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
}
@Override
public void activate(OnLocationChangedListener listener)
{
this.listener = listener;
LocationProvider gpsProvider = locationManager.getProvider(LocationManager.GPS_PROVIDER);
if(gpsProvider != null)
{
locationManager.requestLocationUpdates(gpsProvider.getName(), 0, 10, this);
}
LocationProvider networkProvider = locationManager.getProvider(LocationManager.NETWORK_PROVIDER);;
if(networkProvider != null) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000 * 60 * 5, 0, this);
}
}
@Override
public void deactivate()
{
locationManager.removeUpdates(this);
}
@Override
public void onLocationChanged(Location location)
{
if(listener != null)
{
listener.onLocationChanged(location);
}
}
@Override
public void onProviderDisabled(String provider)
{
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider)
{
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras)
{
// TODO Auto-generated method stub
}
}
Và đây là cách mà tôi sẽ sử dụng lớp này:
protected void setUpMap() {
//init routine
.......
this.map.setLocationSource(new CurrentLocationProvider(this));
.......
}
EDIT Xin vui lòng không phải là giải pháp này là lỗi thời! Bạn cần phải sử dụng FusedLocationProviderApi kết hợp với GoogleApiClient để theo dõi vị trí hiện tại
Nguồn
2013-01-17 23:22:28