public class AMapLocationClient
extends java.lang.Object
构造器和说明 |
---|
AMapLocationClient(Context context)
构造方法
|
限定符和类型 | 方法和说明 |
---|---|
void |
disableBackgroundLocation(boolean removeNotification)
关闭后台定位功能
与
AMapLocationClient.enableBackgroundLocation(int, Notification) 配对使用注意:关闭后台定位功能只是代表不再提供后台定位的能力,并不是停止定位,停止定位请调用 AMapLocationClient.stopLocation() 。 |
void |
enableBackgroundLocation(int notificationId,
Notification notification)
开启后台定位功能
注意:
如果您设置了target>=28,需要增加android.permission.FOREGROUND_SERVICE权限,
如果您的app需要运行在Android Q版本的手机上,需要为ApsService增加android:foregroundServiceType="location"属性, 例:<service android:name="com.amap.api.location.APSService" android:foregroundServiceType="location"/> 主要是为了解决Android 8.0以上版本对后台定位的限制,开启后会显示通知栏,如果您的应用本身已经存在一个前台服务通知,则无需再开启此接口 注意:启动后台定位只是代表开启了后台定位的能力,并不代表已经开始定位,开始定位请调用 AMapLocationClient.startLocation() 。 |
static java.lang.String |
getDeviceId(Context context)
获取设备号
|
AMapLocation |
getLastKnownLocation()
获取最后位置
|
java.lang.String |
getVersion()
获取定位sdk版本信息
|
boolean |
isStarted()
本地定位服务是否已经启动,用于用户检查服务是否已经启动
|
void |
onDestroy()
销毁定位,释放定位资源, 当不再需要进行定位时调用此方法
该方法会释放所有定位资源,调用后再进行定位需要重新实例化AMapLocationClient
|
static void |
setApiKey(java.lang.String apiKey)
设置apikey 必须在AmapLocationClient实例化之前调用
|
void |
setLocationListener(AMapLocationListener listener)
设置定位回调监听
|
void |
setLocationOption(AMapLocationClientOption option)
设置定位参数
|
void |
startAssistantLocation(WebView webView)
启动H5辅助定位
只适用于Android 4.2及以后版本
该接口只用于配合Web JS API的H5辅助定位,开启后并没有开始定位,开始定位由JS API触发。
|
void |
startLocation()
开始定位
|
void |
stopAssistantLocation()
停止辅助定位
如果已经调用了startAssistantLocation接口,在destroy时请调用该接口
|
void |
stopLocation()
停止定位
|
void |
unRegisterLocationListener(AMapLocationListener listener)
移除定位监听
|
static void |
updatePrivacyAgree(Context context,
boolean isAgree)
设置是否同意用户授权政策 必须在AmapLocationClient实例化之前调用
|
static void |
updatePrivacyShow(Context context,
boolean isContains,
boolean isShow)
设置包含隐私政策,并展示用户授权弹窗 必须在AmapLocationClient实例化之前调用
|
public AMapLocationClient(Context context) throws java.lang.Exception
context
- Android上下文java.lang.Exception
public void setLocationOption(AMapLocationClientOption option)
option
- 定位参数public void setLocationListener(AMapLocationListener listener)
listener
- 定位完成后的回调接口public void startLocation()
public void stopLocation()
public AMapLocation getLastKnownLocation()
public void startAssistantLocation(WebView webView)
webView
- 自定义的webViewpublic void stopAssistantLocation()
如果已经调用了startAssistantLocation接口,在destroy时请调用该接口
public java.lang.String getVersion()
public static void updatePrivacyShow(Context context, boolean isContains, boolean isShow)
context
- isContains:
- 是隐私权政策是否包含高德开平隐私权政策 true是包含isShow:
- 隐私权政策是否弹窗展示告知用户 true是展示public static void updatePrivacyAgree(Context context, boolean isAgree)
context
- isAgree:隐私权政策是否取得用户同意
- true是用户同意public static void setApiKey(java.lang.String apiKey)
apiKey
- 要设置的apikeypublic boolean isStarted()
public void unRegisterLocationListener(AMapLocationListener listener)
listener
- 要移除的定位监听public void onDestroy()
该方法会释放所有定位资源,调用后再进行定位需要重新实例化AMapLocationClient
public void enableBackgroundLocation(int notificationId, Notification notification)
主要是为了解决Android 8.0以上版本对后台定位的限制,开启后会显示通知栏,如果您的应用本身已经存在一个前台服务通知,则无需再开启此接口
注意:启动后台定位只是代表开启了后台定位的能力,并不代表已经开始定位,开始定位请调用AMapLocationClient.startLocation()
。
建议:在整个APP中如果存在多个AMapLocationClient,只需要其中一个开启就可以了,无需重复启动,重复启动也只会显示一个通知栏。
notificationId
- 通知栏ID,建议这个app唯一; 不能为0notification
- 自定义通知栏,使用者可以根据自己业务需求自定义Notification,将创建好的Notification对象传入;不能为nullpublic void disableBackgroundLocation(boolean removeNotification)
与AMapLocationClient.enableBackgroundLocation(int, Notification)
配对使用
注意:关闭后台定位功能只是代表不再提供后台定位的能力,并不是停止定位,停止定位请调用AMapLocationClient.stopLocation()
。
如果在整个APP中如果有调用AMapLocationClient.enableBackgroundLocation(int, Notification)
,必须调用该方法。
如果同时有多个AMapLocationClient调用了AMapLocationClient.enableBackgroundLocation(int, Notification)
,只有全部的client
都调用了disableBackgroundLocation(true),通知栏才会消失。
注意:如果您设置了target>=28,需要增加android.permission.FOREGROUND_SERVICE权限
removeNotification
- 是否移除通知栏, true:移除通知栏,false:不移除通知栏,可以手动移除public static java.lang.String getDeviceId(Context context)
context
-