Android手机定位服务

1.LocationListener使用

优先使用网络定位服务,当GPS服务不可用则跳转到手机位置服务设置页面

代码收集:

/**
* 使用手机定位服务
*/
private void startLocationService(){
locationListener = new LocationListener() {

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
// 当GPS LocationProvider可用时,更新位置
location = locManager.getLastKnownLocation(provider);
}
@Override
public void onProviderDisabled(String provider) {
isLocatedSuccess = false;
if (provider.equals("network")) {
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3 * 1000, 8,locationListener);
}else if(provider.equals("gps")){//GPS服务不可用,跳到位置服务设置页面
startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}else {
updateToNewLocation(null);
}
}
@Override
public void onLocationChanged(Location location) {
// 当定位信息发生改变时,更新位置
isLocatedSuccess = true;
updateToNewLocation(location);
locManager.removeUpdates(this);
}
};

if (locManager.getProvider(LocationManager.NETWORK_PROVIDER) != null)
locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 3 * 1000, 8,locationListener);
else if (locManager.getProvider(LocationManager.GPS_PROVIDER) != null)
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3 * 1000, 8,locationListener);
else Toast.makeText(mActivity(), "获取手机位置信息错误", Toast.LENGTH_SHORT).show();
}


本文采用知识共享署名 2.5 中国大陆许可协议进行许可,欢迎转载,但转载请注明来自Agehua’s Blog,并保持转载后文章内容的完整。本人保留所有版权相关权利。

本文链接:http://agehua.github.io/2016/08/03/android-LocationListener/

Share Comments