900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Android 根据手机自带GPS获取当前位置 经纬度

Android 根据手机自带GPS获取当前位置 经纬度

时间:2022-12-28 06:33:01

相关推荐

Android 根据手机自带GPS获取当前位置 经纬度

其实大多时候,我们需要的位置获取,不需要外接高德或者百度,直接通过手机自带的GPS也可以获取当前位置

目录

首先:添加定位,网络权限第一种:使用原生LocationProvider1.初始化,设置定位参数2.设置回调监听第二种:使用框架引用LocationUtils工具类1. [点击查看完整使用依赖](/qq_28643195/article/details/108084339)2.引用函数注:需要注意的是无论这两种那种方法,必须满足于当前设备是有GPS芯片的,不然返回信息为null

首先:添加定位,网络权限

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.INTERNET"/>

第一种:使用原生LocationProvider

1.初始化,设置定位参数

private MyLocationListener myLocationListener;private String bestProvider;private fun initLocation() {//获取定位方式List<String> providers = locationManager.getProviders(true);for(String s:providers){Log.e(TAG,s);}Criteria criteria = new Criteria();// 查询精度:高,Criteria.ACCURACY_COARSE比较粗略,Criteria.ACCURACY_FINE则比较精确criteria.setAccuracy(Criteria.ACCURACY_FINE);// 是否查询海拨:否criteria.setAltitudeRequired(true);// 是否查询方位角 : 否criteria.setBearingRequired(false);// 设置是否要求速度criteria.setSpeedRequired(false);// 电量要求:低criteria.setPowerRequirement(Criteria.ACCURACY_LOW);bestProvider = locationManager.getBestProvider(criteria, false); //获取最佳定位myLocationListener = new MyLocationListener();}

2.设置回调监听

private class MyLocationListener implements LocationListener {@Overridepublic void onLocationChanged(Location location) {//定位时调用Log.e(TAG,"onLocationChanged");List<Address> addresses = new ArrayList<>();//经纬度转城市Geocoder geocoder = new Geocoder(context);try {addresses =geocoder.getFromLocation(location.getLatitude(),location.getLongitude(),10);} catch (IOException e) {e.printStackTrace();}for(Address address:addresses){//国家 CNLog.e(TAG,address.getCountryCode());//国家Log.e(TAG,address.getCountryName());//省,市,地址Log.e(TAG,address.getAdminArea());Log.e(TAG,address.getLocality());Log.e(TAG,address.getFeatureName());//经纬度Log.e(TAG, String.valueOf(address.getLatitude()));Log.e(TAG, String.valueOf(address.getLongitude()));//Log.e(TAG,address.getAddressLine());}}

第二种:使用框架引用LocationUtils工具类

1. 点击查看完整使用依赖

2.引用函数

isGpsEnabled: 判断Gps是否可用isLocationEnabled : 判断定位是否可用openGpsSettings : 打开Gps设置界面register: 注册unregister : 注销getAddress : 根据经纬度获取地理位置getCountryName : 根据经纬度获取所在国家getLocality : 根据经纬度获取所在地getStreet : 根据经纬度获取所在街道

注:需要注意的是无论这两种那种方法,必须满足于当前设备是有GPS芯片的,不然返回信息为null

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。