定位 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)