欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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