如何解决如何使用位置管理器获取当前位置?
我正在使用位置管理器在用户单击按钮时获取当前位置,正常工作,直到用户更改位置权限后更改权限无法立即获取当前位置
1.检查 GPS 和网络是否启用
locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);
// get GPS status
checkGPS = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
// get network provider status
checkNetwork = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
2.如果两者都为false,则什么都不做,获取当前位置
if (!checkGPS && !checkNetwork) {
Toast.makeText(mContext,"No Service Provider is available",Toast.LENGTH_SHORT).show();
} else {
this.canGetLocation = true;
// if GPS Enabled get lat/long using GPS Services
if (checkGPS) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MIN_TIME_BW_UPDATES,MIN_disTANCE_CHANGE_FOR_UPDATES,this);
if (locationManager != null) {
// Toast.makeText(mContext,"GPS_PROVIDER "+checkGPS,Toast.LENGTH_SHORT).show();
loc = locationManager
.getLastKNownLocation(LocationManager.GPS_PROVIDER);
if (loc != null) {
latitude = loc.getLatitude();
longitude = loc.getLongitude();
}
}
}
if(checkNetwork && loc==null){
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,"NETWORK_PROVIDER "+checkNetwork,Toast.LENGTH_SHORT).show();
loc = locationManager
.getLastKNownLocation(LocationManager.NETWORK_PROVIDER);
if (loc != null) {
latitude = loc.getLatitude();
longitude = loc.getLongitude();
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。