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(安卓)获取当前语言的方法1
  2. Android应用程序获取ROOT权限的方法(android中如何通过代码检测
  3. android 银联支付接入报nullexception异常
  4. android 获取wifi 信号质量
  5. android获取mac地址
  6. android intent 传递对象需要序列化实现Parcelable接口
  7. android 获取网络IP地址
  8. Android获取网络视频文件缩略图
  9. Android(安卓)Webview 获取网页form 提交的数据

随机推荐

  1. Android 之 WebView的使用介绍
  2. 本人荣升为“eoe·Android 高级研究院\A
  3. Android 和 H5 互调
  4. Android中自定义水平的ProgressBar
  5. Android 4.0 ICS SystemUI浅析——System
  6. Android 中RxPermissions 的使用
  7. Android中照相机的使用
  8. 程序小白----AndroidStudio之飞机大战
  9. eclipse下载androidSDK
  10. Android之计时器(Chronometer)的用法