用最优的定位方式,获得经度、纬度

比较喜好简单明了的风格,以下方法只是单次获取位置,定位方式没有写死,是根据设备当前所处环境获取最佳定位方式去定位的

    /**
     * 用最优的定位方式,获得经度、纬度:【记得加权限】
     * @param context
     * @return 经度、纬度
     */
    public double[] getPosition(Context context) {
        //位置管理对象
        LocationManager locationManager = (LocationManager) context.getSystemService(context.LOCATION_SERVICE);
        //最优定位方式
        Criteria criteria = new Criteria();
        criteria.setCostAllowed(true);//允许使用流量
        criteria.setAccuracy(Criteria.ACCURACY_FINE); //指定获取经纬度的精确度(精确度越高相应的越耗电)
        String actor = locationManager.getBestProvider(criteria, true);
        //开始定位
        Location location = locationManager.getLastKnownLocation(actor);
        if (location == null) {
            //失败
             Toast.makeText(context,"请检查定位服务是否开启",Toast.LENGTH_LONG).show();
        } else {
            double longitude = location.getLongitude();//经度
            double latitude = location.getLatitude();//纬度
            //装,返回
            return new double[]{longitude,latitude};
        }
        //定位失败返回null
        return null;
    }

记得权限,记得权限

<!--GPS坐标-->
android:name="android.permission.ACCESS_FINE_LOCATION"
<!--粗略坐标【网络定位时用】-->
android:name="android.permission.ACCESS_COARSE_LOCATION"
<!--模拟器虚拟定位【真机没必要】-->
android:name="android.permission.ACCESS_MOCK_LOCATION"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值