- double latitude,longitude =0.0;
- //获取经纬度
- LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
- if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
- Location location = locationManager
- .getLastKnownLocation(LocationManager.GPS_PROVIDER);
- if(location != null){
- latitude = location.getLatitude(); //经度
- longitude = location.getLongitude(); //纬度
- }
- }else{
- LocationListener locationListener = new LocationListener() {
- public void onLocationChanged(Location location) { //当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发
- if (location != null) {
- Log.i("SuperMap", "Location changed : Lat: "
- + location.getLatitude() + " Lng: "
- + location.getLongitude());
- }
- }
- public void onProviderDisabled(String provider) {
- // Provider被disable时触发此函数,比如GPS被关闭
- }
- public void onProviderEnabled(String provider) {
- // Provider被enable时触发此函数,比如GPS被打开
- }
- public void onStatusChanged(String provider, int status, Bundle extras) {
- // Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
- }
- };
- locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener);
- Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
- if(location != null){
- latitude = location.getLatitude(); //经度
- longitude = location.getLongitude(); //纬度
- }
- }
-
- 加入权限:
- <!-- 连接互联网权限 -->
- <uses-permission android:name="android.permission.INTERNET" />
- <!-- gps定位权限 -->
- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
GPS定位更精确一点