Android获取手机当前所在经纬度请参考:http://blog.csdn.net/a511341250/article/details/40509931


manifest中要加的permission和activity_main.xml 参照上。

MainActivity.java

package com.example.test;import java.util.List;import java.util.Locale;import android.location.Address;import android.location.Geocoder;import android.os.Bundle;import android.app.Activity;import android.location.Criteria;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.content.Context;import android.widget.EditText;public class MainActivity extends Activity {LocationManager lm;EditText et;LocationListener ll = new LocationListener(){public void onLocationChanged(Location location){updateView(location);}@Overridepublic void onProviderDisabled(String provider) {// TODO Auto-generated method stubupdateView(null);}@Overridepublic void onProviderEnabled(String provider) {// TODO Auto-generated method stubLocation l = lm.getLastKnownLocation(provider);updateView(l);}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {// TODO Auto-generated method stub}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et = (EditText)findViewById(R.id.et);lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);String bestProvider = lm.getBestProvider(getCriteria(), true);Location l = lm.getLastKnownLocation(bestProvider);updateView(l);lm.requestLocationUpdates(bestProvider, 5000, 8, ll);}private Criteria getCriteria() {// TODO Auto-generated method stubCriteria c = new Criteria();c.setAccuracy(Criteria.ACCURACY_COARSE);c.setSpeedRequired(false);c.setCostAllowed(false);c.setBearingRequired(false);c.setAltitudeRequired(false);c.setPowerRequirement(Criteria.POWER_LOW);return c;}public void updateView(Location newLocation){if(newLocation !=null){String latitude = String.valueOf(newLocation.getLatitude());String longitude = String.valueOf(newLocation.getLongitude());double Latitude = newLocation.getLatitude();double Longitude = newLocation.getLongitude();String city = getAddressbyGeoPoint(Latitude,Longitude);et.setText("您现在的位置是\n维度:");et.append(latitude);et.append("\n经度:");et.append(longitude);et.append("\n城市:");et.append(city);}else{et.getEditableText().clear();}}//从地址Geopoint取得Addresspublic String getAddressbyGeoPoint(double Latitude, double Longitude){  String strReturn = "";  try  {    /* 创建GeoPoint不等于null *///    if (gp != null)//    {      /* 创建Geocoder对象,用于获得指定地点的地址 */      Geocoder gc = new Geocoder(MainActivity.this, Locale.getDefault());            /* 取出地理坐标经纬度*/      double geoLatitude = Latitude;      double geoLongitude = Longitude;            /* 自经纬度取得地址(可能有多行)*/      List lstAddress = gc.getFromLocation(geoLatitude, geoLongitude, 1);      StringBuilder sb = new StringBuilder();            /* 判断地址是否为多行 */      if (lstAddress.size() > 0)      {        Address adsLocation = lstAddress.get(0);        for (int i = 0; i < adsLocation.getMaxAddressLineIndex(); i++)        {          sb.append(adsLocation.getAddressLine(i)).append("\n");  //精确的地址和附近的代表建筑物        }        sb.append(adsLocation.getLocality()).append("\n");  //当前经纬度所在的城市(市)//        sb.append(adsLocation.getPostalCode()).append("\n");//        sb.append(adsLocation.getCountryName());      }            /* 将取得到的地址组合后放到stringbuilder对象中输出用 */      strReturn = sb.toString();//    }  }  catch(Exception e)  {    e.printStackTrace();  }  return strReturn;}}


参考kaka2008的回复:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=23068&page=1#pid216151


用到的jar包Android_Location_V1.1.1.jar

更多相关文章

  1. 关于Android的prelink(Linux)
  2. 不用SDK manager 下载 Android(安卓)sdk 和 platform API(直接获
  3. Android(安卓)搭建Junit测试环境
  4. Android(安卓)搭建Junit测试环境
  5. 不用SDK manager 下载 Android(安卓)sdk 和 platform API(直接获
  6. Android中通过经纬度来过去到城市名称
  7. Android整机源码如何轻松下载?清华大学Android源码镜像
  8. AndroidShortcuts
  9. Android改变MAC地址

随机推荐

  1. Android Eclipse插件TabHost问题(转载)
  2. Android中Json数据解析
  3. 超过 50% 的 Android 设备依然运行 2.2
  4. WindowManagerService原理分析文章合集
  5. 定制Android之4G-LTE模块驱动
  6. RecylcerView中的子view matchParent属性
  7. gradle/gradle plugin/Android(安卓)stud
  8. android定义可以被其他程序调用的activit
  9. Android视频开发国人开发的Vitamio开源项
  10. Android局部布局替换实现