public final class LBSTraceClient
extends java.lang.Object
构造器和说明 |
---|
LBSTraceClient(Context context) |
限定符和类型 | 方法和说明 |
---|---|
void |
addEntity(AddEntityRequest request,
OnEntityListener listener)
添加Entity
使用要点:
entity标识:可以是一个人、一辆车、或任何一个可以被记录轨迹的对象。
|
void |
addFenceMonitoredPerson(AddMonitoredPersonRequest request,
OnFenceListener listener)
增加围栏需监控的entity
使用要点:
该接口只支持服务端围栏添加需要监控的entity
|
void |
addPoint(AddPointRequest request,
OnTrackListener listener)
上传单个轨迹点
|
void |
addPoints(AddPointsRequest request,
OnTrackListener listener)
批量添加轨迹点
|
void |
aroundSearchEntity(AroundSearchRequest request,
OnEntityListener listener)
周边搜索Entity
|
void |
boundSearchEntity(BoundSearchRequest request,
OnEntityListener listener)
矩形搜索Entity
|
void |
clear()
释放资源
注意:为保证sdk正常运行,请只在以下两种情况下调用该方法:
app退出时
不再使用SDK中的任何功能,且再次使用时,会重新初始化LBSTraceClient
|
void |
clearCacheTrack(ClearCacheTrackRequest request,
OnTrackListener listener)
清除缓存轨迹:一个或多个entity的缓存轨迹数据
|
void |
createFence(CreateFenceRequest request,
OnFenceListener listener)
创建围栏
|
void |
deleteEntity(DeleteEntityRequest request,
OnEntityListener listener)
删除Entity
|
void |
deleteFence(DeleteFenceRequest request,
OnFenceListener listener)
删除围栏
|
void |
deleteFenceMonitoredPerson(DeleteMonitoredPersonRequest request,
OnFenceListener listener)
删除围栏需监控的entity
使用要点:
该接口只支持服务端围栏删除需要监控的entity
|
void |
districtSearchEntity(DistrictSearchRequest request,
OnEntityListener listener)
行政区搜索Entity
|
void |
generatePresignedUrl(BosGeneratePresignedUrlRequest request,
OnBosListener listener)
获取对象的URL
|
float |
getMinDistance()
获取GPS最小刷新距离
|
void |
getObject(BosGetObjectRequest request,
OnBosListener listener)
获取对象
|
com.baidu.trace.ServiceState |
getTraceStatus()
获取服务状态
|
boolean |
initThreadPoolConfig(int corePoolSize,
int maximumPoolSize,
int keepAliveTime)
初始化线程池配置
|
void |
listFenceMonitoredPerson(ListMonitoredPersonRequest request,
OnFenceListener listener)
查询围栏监控的所有entity
使用要点:
该接口只支持查询服务端围栏监控的所有entity
|
void |
polygonSearchEntity(PolygonSearchRequest request,
OnEntityListener listener)
多边形搜索Entity
|
void |
putObject(BosPutObjectRequest request,
OnBosListener listener)
上传对象
|
void |
queryCacheTrack(QueryCacheTrackRequest request,
OnTrackListener listener)
查询缓存轨迹
|
void |
queryDistance(DistanceRequest request,
OnTrackListener listener)
查询里程
|
void |
queryDrivingBehavior(DrivingBehaviorRequest request,
OnAnalysisListener listener)
查询驾驶行为
|
void |
queryEntityList(EntityListRequest request,
OnEntityListener listener)
查询Entity列表
使用要点:
若查询时不需要通过自定义属性进行检索,columnKey值为null;
若要通过多个自定义属性进行检索,columnKey字段的格式为"key1=value1,key2=value2,
|
void |
queryFenceHistoryAlarmInfo(HistoryAlarmRequest request,
OnFenceListener listener)
查询围栏内监控对象的历史报警信息
使用要点:
鹰眼服务端只保留7天内的历史报警数据,可以按天或者按周调用该接口将历史报警数据转存到自己的服务器上。
|
void |
queryFenceList(FenceListRequest request,
OnFenceListener listener)
查询围栏列表
|
void |
queryHistoryTrack(HistoryTrackRequest request,
OnTrackListener listener)
查询历史轨迹
|
void |
queryLatestPoint(LatestPointRequest request,
OnTrackListener listener)
查询最新轨迹点
|
void |
queryMonitoredStatus(MonitoredStatusRequest request,
OnFenceListener listener)
查询围栏内监控对象的状态
使用要点:
采用entity最新上传的轨迹点进行围栏状态判断。
|
void |
queryMonitoredStatusByLocation(MonitoredStatusByLocationRequest request,
OnFenceListener listener)
查询指定位置上监控对象状态
|
void |
queryRealTimeLoc(LocRequest request,
OnEntityListener listener)
实时定位(优先使用GPS定位服务)
使用要点:
用于定位设备当前位置,定位信息不会存储在轨迹服务端,即不会形成轨迹信息。
|
void |
queryStayPoint(StayPointRequest request,
OnAnalysisListener listener)
查询停留点
|
void |
searchEntity(SearchRequest request,
OnEntityListener listener)
关键字搜索Entity
|
static void |
setAgreePrivacy(Context context,
boolean isAgreePrivacy)
设置是否同意隐私协议
在创建LBSTraceClient之前调用
|
static void |
setAndroid(Context context,
java.lang.String android)
设置AnroidId
在创建LBSTraceClient之前调用
|
boolean |
setCacheSize(int cacheSize)
设置缓存大小,单位:MB,最小值为50MB,默认不限制缓存大小。
|
boolean |
setInterval(int gatherInterval,
int packInterval)
设置采集和打包位置数据的时间间隔
使用要点:
该接口即可以在开启轨迹服务前调用,也可以在开启轨迹服务后调用。
|
LBSTraceClient |
setLocationMode(LocationMode mode)
设置定位模式
使用要点:
若设置定位模式为低功耗模式(网络定位),则SDK只会采集wifi和基站数据,即便此时已开启GPS;
若设置定位模式为高精度(GPS和网络综合定位),则在GPS定位成功时,SDK只采集GPS信息;GPS未开启或者处于搜索状态,SDK采集wifi和基站数据;
若设置定位模式为仅GPS,则SDK只采集GPS信息;因此,在GPS未打开或处于搜索状态时,SDK将采集不到的轨迹数据(即此时不会有轨迹数据)。
|
boolean |
setLocTimeOffset(int locTimeOffset)
设置定位时间偏差范围(单位:毫秒)
1、若GPS定位时间与系统时间差值在设置的偏差范围内,则定位时间以系统时间为准;
2、若GPS定位时间与系统时间差值超过设置的偏差范围,则定位时间以GPS定位时间为准。
|
void |
setMinDistance(float minDistance)
设置GPS最小刷新距离
|
void |
setOnCustomAttributeListener(OnCustomAttributeListener customAttributeListener)
设置自定义属性监听器
|
void |
setOnTraceListener(OnTraceListener traceListener)
设置轨迹服务监听器
|
LBSTraceClient |
setProtocolType(ProtocolType protocolType)
已过时。
自v3.1.2版本起,不支持设置为HTTP请求,默认使用HTTPS。
设置协议类型(http、https),默认为https
|
void |
startGather(OnTraceListener traceListener)
开启轨迹采集
|
void |
startTrace(Trace mTrace,
OnTraceListener traceListener)
开启轨迹服务
使用要点:
在开启轨迹服务前,需要初始化Trace以及LBSTraceClient,并在AndroidManifest.xml文件中配置API_KEY(AK)。
|
void |
stopGather(OnTraceListener traceListener)
停止轨迹采集
|
void |
stopRealTimeLoc()
停止实时定位(关闭因查询实时定位开启的GPS)
|
void |
stopTrace(Trace mTrace,
OnTraceListener traceListener)
停止轨迹服务
|
void |
updateEntity(UpdateEntityRequest request,
OnEntityListener listener)
更新Entity
使用要点:
columnKey字段用于指定需要修改的自定义属性的值,仍以addEntity()中的物流配送场景为例,
如果将这里的columnKey字段设置为"region=chaoyang"就是将这个entity的地区属性修改为朝阳区。
|
void |
updateFence(UpdateFenceRequest request,
OnFenceListener listener)
更新围栏
|
public LBSTraceClient(Context context) throws java.lang.Exception
java.lang.Exception
public static void setAgreePrivacy(Context context, boolean isAgreePrivacy)
context
- 上下文isAgreePrivacy
- true为同意,false为不同意public static void setAndroid(Context context, java.lang.String android)
context
- 上下文android
- 设备唯一标识public boolean initThreadPoolConfig(int corePoolSize, int maximumPoolSize, int keepAliveTime)
corePoolSize
- 核心线程数maximumPoolSize
- 最大线程数keepAliveTime
- 线程空闲时间(单位:秒)public void createFence(CreateFenceRequest request, OnFenceListener listener)
request
- 创建围栏请求参数listener
- 围栏监听器,对应回调接口为:
OnFenceListener.onCreateFenceCallback(CreateFenceResponse)
public void updateFence(UpdateFenceRequest request, OnFenceListener listener)
request
- 更新围栏请求参数listener
- 围栏监听器,对应回调接口为:
OnFenceListener.onUpdateFenceCallback(UpdateFenceResponse)
public void deleteFence(DeleteFenceRequest request, OnFenceListener listener)
request
- 删除围栏请求参数listener
- 围栏监听器,对应回调接口为:
OnFenceListener.onDeleteFenceCallback(DeleteFenceResponse)
public void queryFenceList(FenceListRequest request, OnFenceListener listener)
request
- 查询围栏列表请求参数listener
- 围栏监听器,对应回调接口为:
OnFenceListener.onFenceListCallback(FenceListResponse)
public void queryMonitoredStatus(MonitoredStatusRequest request, OnFenceListener listener)
request
- 查询监控对象状态请求参数listener
- 围栏监听器,对应回调接口为:
OnFenceListener.onMonitoredStatusCallback(MonitoredStatusResponse)
public void queryMonitoredStatusByLocation(MonitoredStatusByLocationRequest request, OnFenceListener listener)
request
- 请求参数listener
- 围栏监听器,对应回调接口为:
OnFenceListener.onMonitoredStatusByLocationCallback(MonitoredStatusByLocationResponse)
public void queryFenceHistoryAlarmInfo(HistoryAlarmRequest request, OnFenceListener listener)
request
- 请求参数listener
- 围栏监听器,对应回调接口为:
OnFenceListener.onHistoryAlarmCallback(HistoryAlarmResponse)
public void addFenceMonitoredPerson(AddMonitoredPersonRequest request, OnFenceListener listener)
request
- 请求参数listener
- 围栏监听器,对应回调接口为:
OnFenceListener.onAddMonitoredPersonCallback(AddMonitoredPersonResponse)
public void deleteFenceMonitoredPerson(DeleteMonitoredPersonRequest request, OnFenceListener listener)
request
- 请求参数listener
- 围栏监听器,对应回调接口为:
OnFenceListener.onDeleteMonitoredPersonCallback(DeleteMonitoredPersonResponse)
public void listFenceMonitoredPerson(ListMonitoredPersonRequest request, OnFenceListener listener)
request
- 请求参数listener
- 围栏监听器,对应回调接口为:
OnFenceListener.onListMonitoredPersonCallback(ListMonitoredPersonResponse)
public void addEntity(AddEntityRequest request, OnEntityListener listener)
entity标识:可以是一个人、一辆车、或任何一个可以被记录轨迹的对象。在查询任何entity的实时位置、历史轨迹之前,都必须先创建entity。 columnKey字段用于指定新创建的实体的自定义属性的值。假设有一些物流配送人员需要管理, 可以设置columnKey字段的值为"region=haidian,gender=male",即指定新创建的entity的地区属性为海淀区,性别属性为男。 需要注意的是:这里的region和gender属性必须先通过鹰眼web api的entity/addcolumn接口进行添加。 如果这两个属性是可检索的,调用queryEntityList()方法时,若columnKey字段指定为"gender=male"时,对应的entity就会被检索出来。 如果不是可检索的,只会作为queryEntityList()方法的结果,不能用来检索。 添加Entity有2种途径,一是通过调用addEntity()方法主动添加; 二是在实例化Trace时,指定entityName, 开启轨迹服务成功后(即调用startTrace()方法,回调接口状态码为:0,消息为:success), 服务端会自动创建以entityName命名的entity。 需要注意的是:服务端自动创建的entity不包含自定义属性的值,若需要指定entity自定义属性的值,需要再调用updateEntity()方法, 通过columnKey字段指定自定义属性的值。
request
- 请求参数对象listener
- Entity监听器,对应回调接口为:
OnEntityListener.onAddEntityCallback(AddEntityResponse)
public void updateEntity(UpdateEntityRequest request, OnEntityListener listener)
columnKey字段用于指定需要修改的自定义属性的值,仍以addEntity()中的物流配送场景为例, 如果将这里的columnKey字段设置为"region=chaoyang"就是将这个entity的地区属性修改为朝阳区。 此处region必须是已有的属性字段,可以是在addEntity()时创建的属性字段, 也可以是通过web api的entity/addcolumn接口添加的属性字段。
request
- 请求参数对象listener
- Entity监听器,对应回调接口为:
OnEntityListener.onUpdateEntityCallback(UpdateEntityResponse)
public void deleteEntity(DeleteEntityRequest request, OnEntityListener listener)
request
- 请求参数对象listener
- Entity监听器,对应回调接口为:
OnEntityListener.onDeleteEntityCallback(DeleteEntityResponse)
public void queryEntityList(EntityListRequest request, OnEntityListener listener)
若查询时不需要通过自定义属性进行检索,columnKey值为null; 若要通过多个自定义属性进行检索,columnKey字段的格式为"key1=value1,key2=value2,.....", 其中key1和key2须先通过web api的entity/addcolumn接口添加为可检索属性字段。 设置activeTime时,默认值为0,表示查询entity最新的位置信息;也可以设置为某一时间戳,表示查询该时间戳后仍再更新的entity位置信息。
request
- 请求参数对象listener
- Entity监听器,对应回调接口为:
OnEntityListener.onEntityListCallback(EntityListResponse)
public void searchEntity(SearchRequest request, OnEntityListener listener)
request
- 请求参数对象listener
- Entity监听器,对应回调接口为:
OnEntityListener.onSearchEntityCallback(SearchResponse)
public void boundSearchEntity(BoundSearchRequest request, OnEntityListener listener)
request
- 请求参数对象listener
- Entity监听器,对应回调接口为:
OnEntityListener.onBoundSearchCallback(BoundSearchResponse)
public void aroundSearchEntity(AroundSearchRequest request, OnEntityListener listener)
request
- 请求参数对象listener
- Entity监听器,对应回调接口为:
OnEntityListener.onAroundSearchCallback(AroundSearchResponse)
public void polygonSearchEntity(PolygonSearchRequest request, OnEntityListener listener)
request
- listener
- public void districtSearchEntity(DistrictSearchRequest request, OnEntityListener listener)
request
- listener
- public void addPoint(AddPointRequest request, OnTrackListener listener)
request
- 请求参数对象listener
- Track监听器,对应回调接口为:
OnTrackListener.onAddPointCallback(AddPointResponse)
}public void addPoints(AddPointsRequest request, OnTrackListener listener)
request
- 请求参数对象listener
- Track监听器,对应回调接口为:
OnTrackListener.onAddPointsCallback(AddPointsResponse)
}public void queryHistoryTrack(HistoryTrackRequest request, OnTrackListener listener)
request
- 请求参数对象listener
- Track监听器,对应回调接口为:
OnTrackListener.onHistoryTrackCallback(HistoryTrackResponse)
}public void queryDistance(DistanceRequest request, OnTrackListener listener)
request
- 查询里程请求参数listener
- Track监听器,对应回调接口为:
OnTrackListener.onDistanceCallback(DistanceResponse)
public void queryLatestPoint(LatestPointRequest request, OnTrackListener listener)
request
- 查询最新轨迹点请求参数listener
- Track监听器,对应回调接口为:
OnTrackListener.onLatestPointCallback(LatestPointResponse)
public void putObject(BosPutObjectRequest request, OnBosListener listener)
request
- 请求参数listener
- bos操作监听器 对应回调接口为:
OnBosListener.onPutObjectCallback(BosPutObjectResponse)
public void getObject(BosGetObjectRequest request, OnBosListener listener)
request
- 请求参数listener
- bos操作监听器 对应回调接口为:
OnBosListener.onGetObjectCallback(BosGetObjectResponse)
public void generatePresignedUrl(BosGeneratePresignedUrlRequest request, OnBosListener listener)
request
- 请求参数listener
- bos操作监听器 对应回调接口为:
OnBosListener.onGeneratePresignedUrlCallback(BosGeneratePresignedUrlResponse)
public void queryStayPoint(StayPointRequest request, OnAnalysisListener listener)
request
- 请求参数listener
- 轨迹分析监听器 对应回调接口为:
OnAnalysisListener.onStayPointCallback(StayPointResponse)
public void queryDrivingBehavior(DrivingBehaviorRequest request, OnAnalysisListener listener)
request
- 请求参数listener
- 轨迹分析监听器 对应回调接口为:
OnAnalysisListener.onDrivingBehaviorCallback(DrivingBehaviorResponse)
public void queryRealTimeLoc(LocRequest request, OnEntityListener listener)
用于定位设备当前位置,定位信息不会存储在轨迹服务端,即不会形成轨迹信息。
request
- 请求参数listener
- Entity监听器,对应回调接口为:
OnEntityListener.onReceiveLocation(TraceLocation)
public void stopRealTimeLoc()
public float getMinDistance()
public void setMinDistance(float minDistance)
minDistance
- public void queryCacheTrack(QueryCacheTrackRequest request, OnTrackListener listener)
request
- 请求参数listener
- Track监听器 对应回调接口为:
OnTrackListener.onQueryCacheTrackCallback(QueryCacheTrackResponse)
public void clearCacheTrack(ClearCacheTrackRequest request, OnTrackListener listener)
request
- 请求参数listener
- Track监听器 对应回调接口为:
OnTrackListener.onClearCacheTrackCallback(ClearCacheTrackResponse)
}@Deprecated public LBSTraceClient setProtocolType(ProtocolType protocolType)
protocolType
- 协议类型(http、https)public LBSTraceClient setLocationMode(LocationMode mode)
若设置定位模式为低功耗模式(网络定位),则SDK只会采集wifi和基站数据,即便此时已开启GPS; 若设置定位模式为高精度(GPS和网络综合定位),则在GPS定位成功时,SDK只采集GPS信息;GPS未开启或者处于搜索状态,SDK采集wifi和基站数据; 若设置定位模式为仅GPS,则SDK只采集GPS信息;因此,在GPS未打开或处于搜索状态时,SDK将采集不到的轨迹数据(即此时不会有轨迹数据)。
mode
- 定位模式,默认值为LocationMode.High_Accuracypublic boolean setInterval(int gatherInterval, int packInterval)
该接口即可以在开启轨迹服务前调用,也可以在开启轨迹服务后调用。 受打包数据协议最多支持10个轨迹数据的限制,请尽量控制一个打包周期内的轨迹点数量在10个以内,即打包周期不要超过采集周期的10倍。
gatherInterval
- 采集时间间隔,单位:秒,最小为1秒,最大为5分钟,否则设置不成功,默认值为5s。packInterval
- 打包时间间隔,单位:秒,打包时间间隔必须为采集时间间隔的整数倍,最小为2秒,最大为5分钟,否则设置不成功,默认为30s。
int gatherInterval = 10; int packInterval = 60; client.setInterval(gatherInterval, packInterval);
public boolean setLocTimeOffset(int locTimeOffset)
1、若GPS定位时间与系统时间差值在设置的偏差范围内,则定位时间以系统时间为准; 2、若GPS定位时间与系统时间差值超过设置的偏差范围,则定位时间以GPS定位时间为准。
locTimeOffset
- public boolean setCacheSize(int cacheSize)
当缓存的轨迹数据达到指定大小时,SDK会自动清理轨迹数据。
清理策略为:按照采集的时间戳,从小到大进行清理。
cacheSize
- public void setOnTraceListener(OnTraceListener traceListener)
traceListener
- public void setOnCustomAttributeListener(OnCustomAttributeListener customAttributeListener)
customAttributeListener
- public void startTrace(Trace mTrace, OnTraceListener traceListener)
在开启轨迹服务前,需要初始化Trace以及LBSTraceClient,并在AndroidManifest.xml文件中配置API_KEY(AK)。 请先在API 控制台创建AK,应用类型选择Android SDK。 以及在鹰眼管理台创建鹰眼轨迹服务后,平台会自动生成servieId。
mTrace
- 轨迹服务traceListener
- 监听器,对应回调接口为: OnTraceListener.onStartTraceCallback(int, String)
// 轨迹服务ID
long serviceId = 128384;
// 设备标识
String entityName = "myTrace";
// 是否需要对象存储服务,注意:若需要对象存储服务,一定要导入bos-android-sdk-1.0.2.jar。
boolean isNeedObjectStorage = false;
// 初始化轨迹服务
Trace mTrace = new Trace(serviceId, entityName, isNeedObjectStorage);
// 初始化轨迹服务客户端
LBSTraceClient mTraceClient = new LBSTraceClient(getApplicationContext());
// 初始化轨迹服务监听器
OnTraceListener mTraceListener = new OnTraceListener() {};
// 开启服务
mTraceClient.startTrace(mTrace, mTraceListener);
public void stopTrace(Trace mTrace, OnTraceListener traceListener)
mTrace
- 轨迹服务traceListener
- 监听器,对应回调接口为: OnTraceListener.onStopTraceCallback(int, String)
public void startGather(OnTraceListener traceListener)
traceListener
- 监听器,对应回调接口为: OnTraceListener.onStartGatherCallback(int, String)
public void stopGather(OnTraceListener traceListener)
traceListener
- 监听器,对应回调接口为: OnTraceListener.onStopGatherCallback(int, String)
public com.baidu.trace.ServiceState getTraceStatus()
ServiceState
public void clear()
注意:为保证sdk正常运行,请只在以下两种情况下调用该方法: