Android定位获取当前经纬度
16lz
2021-12-04
1.使用android提供的LocationManager管理类
2.使用GPS或者网络定位
3.只使用了Log打印出经纬度,没有在界面显示
public class MainActivity extends Activity { private LocationManager locationManager; private String locationProvider; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取地理位置管理器 locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); //获取所有可用的位置提供器 List providers = locationManager.getProviders(true); if (providers.contains(LocationManager.GPS_PROVIDER)) { //如果是GPS locationProvider = LocationManager.GPS_PROVIDER; } else if (providers.contains(LocationManager.NETWORK_PROVIDER)) { //如果是Network locationProvider = LocationManager.NETWORK_PROVIDER; } else { Toast.makeText(this, "没有可用的位置提供器", Toast.LENGTH_SHORT).show(); return; } //获取Location Location location = locationManager.getLastKnownLocation(locationProvider); if (location != null) { //不为空,显示地理位置经纬度 Log.i("TAG","经度"+location.getLongitude()+"纬度"+location.getLatitude()); } //监视地理位置变化 locationManager.requestLocationUpdates(locationProvider, 1000, 1, locationListener); } LocationListener locationListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle arg2) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } @Override public void onLocationChanged(Location location) { //如果位置发生变化,重新显示 如果位置改变,经纬度没有变,不会执行此函数 应该说经纬度发生变化执行此函数 Log.i("TAG","经度"+location.getLongitude()+"纬度"+location.getLatitude()); } }; @Override protected void onDestroy() { super.onDestroy(); if (locationManager != null) { //移除监听器 locationManager.removeUpdates(locationListener); } }}
在AndroidManifest.xml中加入所需权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
已知缺点:
1.定位速度慢,效果差
2.没有检查是否打开GPS
更多相关文章
- Android(安卓)关闭(删除)FM Transmitter功能的方法
- android 地图 MapView API Key 获取
- 2011.07.20——— android 获得当前view在屏幕的坐标
- Linux下面为Android(安卓)Studio创建快捷方式即起动器
- Android(安卓)软键盘弹出时布局位置改变
- Android(安卓)可以自定义速度的跑马灯效果
- android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
- android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
- Android(安卓)API教程:人脸检测(Face Detect)