public final class TencentLocationManager
extends java.lang.Object
注意, 使用腾讯定位服务前, 应确保:
限定符和类型 | 字段和说明 |
---|---|
static int |
COORDINATE_TYPE_GCJ02
坐标系标识, 国测局坐标(火星坐标).
|
static int |
COORDINATE_TYPE_WGS84
坐标系标识, WGS84坐标(GPS坐标, 地球坐标).
|
static int |
TYPE_OAID |
static int |
TYPE_OTHER_ID |
static int |
TYPE_QIMEI |
限定符和类型 | 方法和说明 |
---|---|
void |
disableForegroundLocation(boolean removeNotification)
关闭前台定位服务
|
void |
enableForegroundLocation(int notificationId,
android.app.Notification notification)
开启前台定位服务,注意需要在清单文件中配置服务 com.tencent.map.geolocation.s
|
java.lang.String |
getBuild() |
int |
getCoordinateType()
获取当前使用的坐标系.
|
static TencentLocationManager |
getInstance(android.content.Context context)
获取腾讯定位服务实例,该方法需要在带有looper的线程调用,SDK会保证无耗时操作并立即返回。
|
TencentLocation |
getLastKnownLocation()
返回最近一次的位置, 可能为 null.
|
java.lang.String |
getVersion() |
void |
removeUpdates(TencentLocationListener listener)
移除位置监听器并停止定位.
|
int |
requestLocationUpdates(TencentLocationRequest request,
TencentLocationListener listener)
请求定位, 位置更新将通过 listener 回调通知.
|
int |
requestLocationUpdates(TencentLocationRequest request,
TencentLocationListener listener,
android.os.Looper looper)
请求(在与 looper 关联的线程中)定位, 位置更新将通过 listener 回调通知.
|
int |
requestSingleFreshLocation(TencentLocationRequest request,
TencentLocationListener listener,
android.os.Looper looper)
获取当前单次定位,该方法可在未启动周期性回调时获取一次最新位置
也可以在启动周期性回调时,强制刷新得到一次最新的位置信息
该接口在单次定位时,获取位置结果为1号定位接口,在启动周期性回调时,
结果跟随TencentLocationRequest中设置的定位接口号码。
|
void |
setCoordinateType(int coordinateType)
设置坐标系.
|
void |
setDebuggable(boolean debuggable)
设置是否允许内部进入Debug模式[默认为false]。
|
boolean |
startIndoorLocation()
立即启动高精度室内定位.
|
boolean |
stopIndoorLocation()
立即中断室内定位组件运行,相当于interrupt the indoor thread。
|
void |
triggerCodeGuarder(boolean trigger)
启动反调试代码保护策略,默认关闭。
|
public static final int TYPE_QIMEI
public static final int TYPE_OAID
public static final int TYPE_OTHER_ID
public static final int COORDINATE_TYPE_GCJ02
public static final int COORDINATE_TYPE_WGS84
public static TencentLocationManager getInstance(android.content.Context context) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
context
- Activity, Service, ApplicationContext 等各种 Contextjava.lang.NullPointerException
- context 为 nulljava.lang.IllegalArgumentException
- 没有在带有线程调用该方法public void enableForegroundLocation(int notificationId, android.app.Notification notification) throws java.lang.IllegalArgumentException
notificationId
- notifation设置唯一idnotification
- 自定义的通知java.lang.IllegalArgumentException
- 非法的的坐标类型,notificationId必须大于0,且notification不为null,否则抛出该异常public void disableForegroundLocation(boolean removeNotification)
removeNotification
- 是否移除通知栏通知public void setCoordinateType(int coordinateType)
coordinateType
- 合法的坐标系只包括 COORDINATE_TYPE_GCJ02
和
COORDINATE_TYPE_WGS84
java.lang.IllegalArgumentException
- 非法的的坐标类型java.lang.IllegalStateException
- 未取消位置监听器(定位仍在进行)的情况下调用本方法public int getCoordinateType()
public int requestLocationUpdates(TencentLocationRequest request, TencentLocationListener listener)
强烈建议在主线程中调用本方法, 定位完成后(无论定位成功或失败)都应尽快移除 listener, 否则可能不必要地消耗较多电量.
request
- 定位请求listener
- 位置监听器java.lang.NullPointerException
- request 或 listener 为 nullpublic int requestLocationUpdates(TencentLocationRequest request, TencentLocationListener listener, android.os.Looper looper)
强烈建议在主线程中调用本方法, 定位完成后(无论定位成功或失败)都应尽快移除 listener, 否则可能不必要地消耗较多电量.
注意: 由于回调方法在新线程中调用, 回调方法中*不应*执行某些必须在主线程中完成的操作, 比如更新UI.
request
- 定位请求listener
- 位置监听器looper
- looperjava.lang.NullPointerException
- request, listener 或者 looper 为 nullpublic int requestSingleFreshLocation(TencentLocationRequest request, TencentLocationListener listener, android.os.Looper looper)
listener,回调完成后,sdk中会置null释放指向,防止内存泄漏
- public boolean startIndoorLocation()
public boolean stopIndoorLocation()
public TencentLocation getLastKnownLocation()
public void removeUpdates(TencentLocationListener listener)
定位完成后应尽快通过本方法移除 listener 否则可能消耗较多电量.
listener
- 位置监听器public java.lang.String getBuild()
public java.lang.String getVersion()
public void setDebuggable(boolean debuggable)
debuggable
- 是否允许内部进入Debug模式[默认为false]public void triggerCodeGuarder(boolean trigger)
trigger
- 是否启动反调试策略[默认为false]