根据高德官方获得key和配置Android Studio
https://lbs.amap.com/api/android-location-sdk/guide/create-project/get-key
目前我只用了定位
依赖:
implementation fileTree(include: ['*.jar'], dir: 'libs')
allprojects { repositories { jcenter() } }
implementation 'com.amap.api:map2d:latest.integration'
implementation 'com.amap.api:navi-3dmap:latest.integration'
implementation 'com.amap.api:search:latest.integration'
implementation 'com.amap.api:location:latest.integration'
在build.gradle中加入
android{
ndk { //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86", "arm64-v8a", "x86_64"
}
}
直接调用getLocation();
public AMapLocationClient mLocationClient = null;
//声明定位回调监听器
public AMapLocationListener mLocationListener = new AMapLocationListener() {
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
Log.d("Location", "mLocationListener>>>>: ");
if (aMapLocation != null) {
if (aMapLocation.getErrorCode() == 0) {
//可在其中解析amapLocation获取相应内容。
aMapLocation.getAddress();
Log.d("Location", "aMapLocation.getAddress(): " + aMapLocation.getAddress()+"坐标"+aMapLocation.getLatitude());
//tv_location.setText(aMapLocation.getAddress());
et_signUPaddress.setText(aMapLocation.getAddress());
} else {
//定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。
Log.e("AmapError", "location Error, ErrCode:"
+ aMapLocation.getErrorCode() + ", errInfo:"
+ aMapLocation.getErrorInfo());
}
}
}
};
//声明AMapLocationClientOption对象
public AMapLocationClientOption mLocationOption = null;
public void getLocation() {
//初始化定位
mLocationClient = new AMapLocationClient(getApplicationContext());
//设置定位回调监听
mLocationClient.setLocationListener(mLocationListener);
//初始化AMapLocationClientOption对象
mLocationOption = new AMapLocationClientOption();
/**
* 设置定位场景,目前支持三种场景(签到、出行、运动,默认无场景)
*/
//不允许模拟定位
mLocationOption.setMockEnable(false);
mLocationOption.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn);
if (null != mLocationClient) {
mLocationClient.setLocationOption(mLocationOption);
//设置场景模式后最好调用一次stop,再调用start以保证场景模式生效
mLocationClient.stopLocation();
mLocationClient.startLocation();
}
//设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
//给定位客户端对象设置定位参数
mLocationClient.setLocationOption(mLocationOption);
//启动定位
mLocationClient.startLocation();
// mLocationClient.stopLocation();//停止定位后,本地定位服务并不会被销毁
// mLocationClient.onDestroy();
}