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

来源:互联网 发布:python为什么慢 编辑:程序博客网 时间:2024/04/30 02:57

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

    /**     * 用最优的定位方式,获得经度、纬度:【记得加权限】     * @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
原创粉丝点击