- package com.studio.android.chp08.ex01;
- 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 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 = LocationManager.NETWORK_PROVIDER;
- 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);
- if (location != null) {
- double lat = location.getLatitude();
- double lng = location.getLongitude();
- latLongString = "纬度:" + lat + "\n经度:" + lng;
- } else {
- latLongString = "无法获取地理信息";
- }
- List<Address> addList = null;
- Geocoder ge = new Geocoder(this);
- try {
- addList = ge.getFromLocation(24.463, 118.1, 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 += "\n";
- latLongString += ad.getCountryName() + ";" + ad.getLocality();
- }
- }
- myLocationText.setText("您当前的位置是:\n" +latLongString);
- }
- }
获取手机的经纬度
最新推荐文章于 2021-05-26 02:06:33 发布