1.在 http://lbs.amap.com/api/android-location-sdk/download/ 下载高德的sdk 我在这里只选择了定位sdk
2.申请key
登陆 http://lbs.amap.com/ 后进入控制台创建新应用
若是不知道sha1值则参考 http://blog.csdn.net/xinpengfei521/article/details/52966428
在命令提示符输入
C:\Users\Administrator>cd .android
C:\Users\Administrator\.android>keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000
设置新的sha1码
3.在项目中导入下载的jar包
import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
在activity中声明
//声明AMapLocationClientOption对象
public AMapLocationClientOption mLocationOption = null;
//声明AMapLocationClient类对象
public AMapLocationClient mLocationClient = null;
//声明定位回调监听器
AMapLocationListener mAMapLocationListener = new AMapLocationListener(){
@Override
public void onLocationChanged(AMapLocation amapLocation) {
if (amapLocation != null) {
if (amapLocation.getErrorCode() == 0) {
//可在其中解析amapLocation获取相应内容。
AppApplication application = (AppApplication)getApplicationContext();
application.setlatitude(amapLocation.getLatitude() + "");
application.setlongitude(amapLocation.getLongitude() + "");
}else {
//定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。
Log.e("AmapError","location Error, ErrCode:"
+ amapLocation.getErrorCode() + ", errInfo:"
+ amapLocation.getErrorInfo());
}
}
}
};
启动定位
//初始化定位
mLocationClient = new AMapLocationClient(getApplicationContext());
//设置定位回调监听
mLocationClient.setLocationListener(mAMapLocationListener);
mLocationOption = new AMapLocationClientOption();
//获取一次定位结果:
//该方法默认为false。
mLocationOption.setOnceLocation(true);
//获取最近3s内精度最高的一次定位结果:
//设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。
mLocationOption.setOnceLocationLatest(true);
//给定位客户端对象设置定位参数
mLocationClient.setLocationOption(mLocationOption);
//启动定位
mLocationClient.startLocation();