package cn.xx.currentlocation;import java.io.IOException;import java.util.List;import java.util.Locale;import android.app.Activity;import android.content.Context;import android.location.Address;import android.location.Criteria;import android.location.Geocoder;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.widget.TextView;import android.widget.Toast;public class CurrentLocation extends Activity {        /** Called when the activity is first created. */        @Override        public void onCreate(Bundle savedInstanceState) {                super.onCreate(savedInstanceState);                setContentView(R.layout.main);                LocationManager locationManager;                String serviceName = Context.LOCATION_SERVICE;                locationManager = (LocationManager) getSystemService(serviceName);//                String provider = LocationManager.GPS_PROVIDER;//                String provider = "gps";                Criteria criteria = new Criteria();                criteria.setAccuracy(Criteria.ACCURACY_FINE);                criteria.setAltitudeRequired(false);                 criteria.setBearingRequired(false);                criteria.setCostAllowed(true);                criteria.setPowerRequirement(Criteria.POWER_LOW);                String provider = locationManager.getBestProvider(criteria, true);                Location location = locationManager.getLastKnownLocation(provider);                updateWithNewLocation(location);                locationManager.requestLocationUpdates(provider, 2000, 10, locationListener);        }        private final LocationListener locationListener = new LocationListener() {                public void onLocationChanged(Location location) {                        updateWithNewLocation(location);                }                public void onProviderDisabled(String provider) {                        updateWithNewLocation(null);                }                public void onProviderEnabled(String provider) {                }                public void onStatusChanged(String provider, int status, Bundle extras) {                }        };        private void updateWithNewLocation(Location location) {                String latLongString;                TextView myLocationText;                myLocationText = (TextView) findViewById(R.id.myLocationText);//                try {//                        Thread.sleep(0);//因为真机获取gps数据需要一定的时间,为了保证获取到,采取系统休眠的延迟方法//                } catch (InterruptedException e) {//                        e.printStackTrace();//                        throw new RuntimeException(e);//                }                if (location != null) {                        double lat = location.getLatitude();                        double lng = location.getLongitude();                                                Geocoder geocoder=new Geocoder(this); //                        Geocoder geocoder = new Geocoder(this, Locale.CHINA);                        List places = null;                                                try {//                                Thread.sleep(2000);                                places = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 5);//                                Thread.sleep(2000);                                Toast.makeText(CurrentLocation.this, places.size()+"", Toast.LENGTH_LONG).show();                                System.out.println(places.size()+"");                         } catch (Exception e) {                                  e.printStackTrace();                        }                                                String placename = "";                        if (places != null && places.size() > 0) {                                // placename=((Address)places.get(0)).getLocality();                                //一下的信息将会具体到某条街                                //其中getAddressLine(0)表示国家,getAddressLine(1)表示精确到某个区,getAddressLine(2)表示精确到具体的街                                placename = ((Address) places.get(0)).getAddressLine(0) + ", " + System.getProperty("line.separator")                                                + ((Address) places.get(0)).getAddressLine(1) + ", "                                                + ((Address) places.get(0)).getAddressLine(2);                        }                        latLongString = "纬度:" + lat + "/n经度:" + lng;                        Toast.makeText(CurrentLocation.this, placename, Toast.LENGTH_LONG).show();                } else {                        latLongString = "无法获取地理信息";                }                myLocationText.setText("您当前的位置是:/n" + latLongString);        }} 又有其他项目,还没着手这个GPS功能,没来得及试

更多相关文章

  1. Android开发者已经度过了初级、中级,如何成为一个Android高手呢?
  2. Android获取经纬度,计算距离,方位角
  3. Android 根据城市获取经纬度 适配Android 7.0 、Android 8.0
  4. Android百度地图——在地图上标注已知GPS纬度经度值的一个或一组
  5. 高德地图-Android-逆地理转换:经纬度转换成地址
  6. Android经纬度转化为距离

随机推荐

  1. ffmpeg入门教程之Android使用FFmpeg so(AP
  2. 滚动条的使用
  3. 安卓开发之控件TextView和EditView
  4. Android剪切板设置和读取字符串String 关
  5. Flutter 修改或者查看pubspec.yaml 导致A
  6. post postinvalidate invalidate
  7. Android题目笔记(二)
  8. android打造的最简单计算器界面
  9. 线程和线程池
  10. 如何唯一确定一台 Android(安卓)设备?