PermissionGrantor,一行代码搞定动态权限申请

static public void getLocation(ShopListActivity activity) {

        //初始化定位
        final AMapLocationClient mLocationClient = new AMapLocationClient(SmApplication.getInstance().getApplicationContext());
        //设置定位回调监听
        mLocationClient.setLocationListener(new AMapLocationListener() {
            @Override
            public void onLocationChanged(AMapLocation amapLocation) {
                if (amapLocation.getErrorCode() == 0) {
//                    double latitude = amapLocation.getLatitude();//获取纬度
//                    double longitude = amapLocation.getLongitude();//获取经度
//                LatLng nowLng = new LatLng(latitude, longitude);//当前定位点经纬度
                    mLocationClient.onDestroy();
//                    EventBus.getDefault().post(new LatLng(latitude, longitude));
                    EventBus.getDefault().post(amapLocation);
                } else {
                    Toast.makeText(SmApplication.getInstance().getApplicationContext(), amapLocation.getErrorInfo(), Toast.LENGTH_SHORT).show();
                }
            }
        });
        //初始化AMapLocationClientOption对象
        AMapLocationClientOption mLocationOption = new AMapLocationClientOption();
        //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
        mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
        //设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。
        mLocationOption.setInterval(10000);
        //设置是否返回地址信息(默认返回地址信息)
        mLocationOption.setNeedAddress(true);
        //单位是毫秒,默认30000毫秒,建议超时时间不要低于8000毫秒。
        mLocationOption.setHttpTimeOut(20000);
        //给定位客户端对象设置定位参数
        mLocationClient.setLocationOption(mLocationOption);
        //启动定位

        if (PermissionsUtil.hasPermission(activity, neededPermissions)) {
            mLocationClient.startLocation();
        } else {
            PermissionsUtil.requestPermission(activity, new PermissionListener() {
                @Override
                public void permissionGranted(@NonNull String[] permissions) {
                }

                @Override
                public void permissionDenied(@NonNull String[] permissions) {
                }
            }, neededPermissions);
        }
    }

猜你喜欢

转载自blog.csdn.net/johnyin2015/article/details/78462810