Android实现判断位置信息是否开启以及开启位置信息功能
程序员文章站
2022-06-19 09:23:00
前言今天在使用第三方百度SDK时遇见了精度圈未显示的情况,最后发现是因为位置信息未开启。虽然有GPS权限了,但是没开GPS。去网上找了开启GPS的方法,最后成功实现,在此记录下来。 locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); //判断是否开启了GPS boolean ok = locationManager.isProviderEnabled(Locati...
前言
今天在使用第三方百度SDK时遇见了精度圈未显示的情况,最后发现是因为位置信息未开启。虽然有GPS权限了,但是没开GPS。去网上找了开启GPS的方法,最后成功实现,在此记录下来。
private void initGPS() {
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
//判断是否开启了GPS
boolean ok = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
//若开启,申请权限
if (ok) {
PermissionsUtil.requestPermission(this, new PermissionListener() {
@Override
public void permissionGranted(@NonNull String[] permission) {
//该方法是在自己的地图中展示当前所在位置的定位点,此处忽略
initLocation();
}
@Override
public void permissionDenied(@NonNull String[] permission) {
}
}, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION);
} else {
//若未开启,弹框让用户选择去开
new AlertDialog.Builder(MapActivity.this)
.setIcon(android.R.drawable.ic_dialog_info)
.setTitle("获取位置失败")
.setMessage("未开启位置信息,是否前往开启")
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MapActivity.this, "未开启位置信息,无法使用本服务", Toast.LENGTH_SHORT).show();
finish();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent,1);
dialogInterface.dismiss();
}
})
.show();
}
}
//监听回传
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
initGPS();
break;
default:
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
本文地址:https://blog.csdn.net/weixin_46603990/article/details/110671662