定位 SDK 是一套简单的 LBS(Location-based services)定位接口,您可以使用这套定位 API 获取定位结果。
定位支持 原生 AAR 接入 和 组件化接入 两种接入方式。
前置条件
若采用原生 AAR 方式接入,需先完成 将 mPaaS 添加到您的项目中 的前提条件和后续相关步骤。
若采用组件化方式接入,需先完成 组件化接入流程。
添加 SDK
原生 AAR 方式
参考 AAR 组件管理,通过 组件管理(AAR)在工程中安装 定位 组件。
组件化方式
在 Portal 和 Bundle 工程中通过 组件管理 安装 定位 组件。更多信息,参考 管理组件依赖。
申请高德KEY
使用 LBS 之前,在 高德开放平台 申请账号并获取定位 Key。申请的 Key 示例如下:
配置 AndroidManifest
在 AndroidManifest.xml
文件中添加高德定位的 Key 和高德定位 Service。
<!--高德定位 Key-->
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="填入您申请的高德 Key" />
<!--高德定位 Service-->
<service android:name="com.amap.api.location.APSService"></service>
从 10.1.68.18 版本起,定位的自动签到功能默认关闭。如需开启自动签到,需要在 AndroidManifest
文件中手动添加如下配置:
<meta-data android:name="com.mpaas.lbs.autoCheckIn" android:value="true" />
API 说明
调用定位能力
说明
默认定位到区县级别,详细街道级别参考 其他相关接口。
LBSLocationManagerProxy.getInstance().requestLocationUpdates(MainActivity.this, new LBSLocationListener() {
@Override
public void onLocationUpdate(LBSLocation lbsLocation) {
Toast.makeText(MainActivity.this, "lbsLocation is " + lbsLocation.getAddress(), Toast.LENGTH_LONG).show();
}
@Override
public void onLocationFailed(int i) {
Toast.makeText(MainActivity.this,
"onLocationFailed" + i, Toast.LENGTH_SHORT).show();
}
});
其他相关接口
/**
* 注册定位,定位到区县级别
*/
public void requestLocationUpdates(Context context, LBSLocationListener locationListener)
/**
* 注册定位,如果需要定位到街道级别,请使用此 API
* gpsEnable: false 表示定位到区县级别,true 表示定位到街道级别,精度更高,更耗性能
* miniInterval: 定位间隔时间,可以使用 LBSLocationManagerProxy.DEFAULT_LOCATION_INTERVAL
* overtime: 定位超时时间,可以使用 LBSLocationManagerProxy.LOCATION_TIME_OUT
* isNeedAddress: true 表示逆地理,false 表示仅经纬度
* bizType: 业务类型,传 null 即可
*/
public void doRequestLocationUpdates(Context context, boolean gpsEnable, LBSLocationListener locationListener, long miniInterval, long overtime, boolean isNeedAddress, String bizType)
// remove 定位注册的回调
public void removeUpdates(Context context, LBSLocationListener listener)
// 获取最近一次定位成功的位置
public LBSLocation getLastKnownLocation(Context context)