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

更多相关文章

  1. Android(安卓)关闭(删除)FM Transmitter功能的方法
  2. android 地图 MapView API Key 获取
  3. 2011.07.20——— android 获得当前view在屏幕的坐标
  4. Linux下面为Android(安卓)Studio创建快捷方式即起动器
  5. Android(安卓)软键盘弹出时布局位置改变
  6. Android(安卓)可以自定义速度的跑马灯效果
  7. android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
  8. android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
  9. Android(安卓)API教程:人脸检测(Face Detect)

随机推荐

  1. Android学习资料精荐
  2. Android百分比下载进度条
  3. 【Android NDK 开发】NDK 交叉编译 ( Ubu
  4. android中DatePicker和TimePicker的使用
  5. Android找出弹状态栏广告的应用
  6. Android开发实践:常用NDK命令行参数
  7. Android 利用getApplication() 共享全局
  8. Android中关于内部存储的一些重要函数
  9. Android进程间通信(IPC)机制Binder简要介绍
  10. Android小程序-涂鸦板