Android定位功能总结

来源:互联网 发布:ubuntu系统 流畅 配置 编辑:程序博客网 时间:2024/05/24 06:24

前言:

定位功能,在我们的很多app中都可以看得到,今天就编写一个Demo来总结一下如何获取经纬度


步骤一:声明权限

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

注:在Android 6.0以上,除了在AndroidManifest.xml中进行权限的声明之外,这个权限还需要在代码去进行校验,征询用户的同意;


步骤二:获取LocationManager实例

locationManager        = (LocationManager) getSystemService(Context.LOCATION_SERVICE);


步骤三:设置定位的方式

/*** * 设置定位的方式: * GPS_PROVIDER:使用GPS的方式进行定位 * NETWORK_PROVIDER:使用网络的方式进行定位 * PASSIVE_PROVIDER:通过其他应用定位的结果来获知此时的位置(一般不用) * ***//*** * 获取目前所有可用的定位方式 */List<String> providers = locationManager.getProviders(true);/*** * 手动筛选出最佳的一个定位方式 */if (providers.contains(LocationManager.GPS_PROVIDER)) {    bestProvider = LocationManager.GPS_PROVIDER;} else if (providers.contains(LocationManager.NETWORK_PROVIDER)) {    bestProvider = LocationManager.NETWORK_PROVIDER;} else {    Toast.makeText(this, "no provider", Toast.LENGTH_SHORT).show();    return;}

步骤四:对定位进行侦听

listener = new LocationListener() {    @Override    public void onLocationChanged(Location location) {        /***         * 获取维度值         * **/        double latitude = location.getLatitude();        Log.e("latitude", "" + latitude);        /***         * 获取经度值         * **/        double longitude = location.getLongitude();        Log.e("longitude", "" + longitude);        textView_01.setText("latitude:" + latitude + '\n' + "longitude" + longitude);    }    @Override    public void onStatusChanged(String provider, int status, Bundle extras) {    }    @Override    public void onProviderEnabled(String provider) {    }    @Override    public void onProviderDisabled(String provider) {    }};
/** * bestProvider表示我们设置的定位方式 * 2000:表示每2000ms定位信息就更新一次 * 1:表示每1m定位信息也更新一次 * listener:定位侦听者 */locationManager.requestLocationUpdates(bestProvider, 2000, 1, listener);

步骤五:当程序关闭时,移除侦听

locationManager.removeUpdates(listener);

总结:

在这里只是进行了获取经纬度的操作,若想要获取其具体的地址,可以通过引入百度SDK的反地理编码功能来实现,

也可以用其他反地理编码API来实现,当然你还可以直接通过百度地图SDK集成的定位功能来替代上述一切操作;

至于如何用百度地图SDK来操作定位功能,直接进官网查看,文档已经写得很清楚了........


效果图:



源码:

Android定位功能示例源码


参考:

郭霖《第一行代码android》

0 0