package csd.sed; import java.io.IOException; import java.util.List; 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; public class TestsewActivity extends Activity { private final String provider = LocationManager.NETWORK_PROVIDER; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria.POWER_LOW); 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; double lat = 0; double lng=0; myLocationText = (TextView)findViewById(R.id.test2); if (location != null) { lat = location.getLatitude(); lng = location.getLongitude(); latLongString = "纬度:" + lat + " 经度:" + lng; } else { latLongString = "无法获取地理信息"; } List<Address> addList = null; Geocoder ge = new Geocoder(this); try { addList = ge.getFromLocation(lat, lng, 1); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(addList!=null && addList.size()>0){ for(int i=0; i<addList.size(); i++){ Address ad = addList.get(i); latLongString += " "; latLongString += ad.getCountryName() + ";" + ad.getLocality(); } } myLocationText.setText("您当前的位置是: " +latLongString); } }
权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
下载源码:
链接: http://pan.baidu.com/s/1dDl9p77 源码文件名:getLocation.rar