Android定位功能总结
2016-08-10 16:39
459 查看
前言:
定位功能,在我们的很多app中都可以看得到,今天就编写一个Demo来总结一下如何获取经纬度
步骤一:声明权限
注:在Android 6.0以上,除了在AndroidManifest.xml中进行权限的声明之外,这个权限还需要在代码去进行校验,征询用户的同意;
步骤二:获取LocationManager实例
步骤三:设置定位的方式
步骤四:对定位进行侦听
步骤五:当程序关闭时,移除侦听
总结:
在这里只是进行了获取经纬度的操作,若想要获取其具体的地址,可以通过引入百度SDK的反地理编码功能来实现,
也可以用其他反地理编码API来实现,当然你还可以直接通过百度地图SDK集成的定位功能来替代上述一切操作;
至于如何用百度地图SDK来操作定位功能,直接进官网查看,文档已经写得很清楚了........
效果图:
源码:
Android定位功能示例源码
参考:
郭霖《第一行代码android》
定位功能,在我们的很多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》
相关文章推荐
- android的手机任务管理器,关键功能实现方法总结
- Android功能总结:仿照Launcher的Workspace实现左右滑动切换
- Android 2.1 GPS定位和拍照功能代码
- Android定位功能(一)
- Android定位功能(二)
- Android平台拨号功能的总结
- Android定位功能(一)
- Android定位功能(一)
- Android传感器、语音识别、定位系统、Google Map API、快捷方式、widget编程总结及示例
- 分享Android CellLocation源码,基于Rexsee对象的基站定位功能
- android的手机任务管理器,关键功能实现方法总结
- android的手机任务管理器,关键功能实现方法总结
- Android定位功能
- Android定位功能(二)
- WorldWind学习总结【三】定位功能分析
- 关于android2.2地图定位的问题,程序员取得了设备所在经纬度,得不到具体的地址。这里做一下总结。
- Android定位功能(二)
- Android地图和定位学习总结
- Android地图和定位学习总结
- 转 Android地图和定位学习总结