android开发工具有很多。在此,我们推荐开发者使用android studio作为自己的开发工具,本套开发指南也是针对android studio开发环境下进行编写的。
鹰眼android sdk示例工程源码已公布,下载请点击。
进入鹰眼轨迹管理台创建鹰眼服务,获得serviceid。创建方法详见创建鹰眼轨迹服务
申请android密钥,请见申请密钥
创建并配置工程(具体方法参见配置工程部分的介绍)
// 轨迹服务idlong serviceid =0;// 设备标识string entityname ="mytrace";// 是否需要对象存储服务,默认为:false,关闭对象存储服务。注:鹰眼 android sdk v3.0以上版本支持随轨迹上传图像等对象数据,若需使用此功能,该参数需设为 true,且需导入bos-android-sdk-1.0.2.jar。boolean isneedobjectstorage =false;// 初始化轨迹服务trace mtrace =newtrace(serviceid, entityname, isneedobjectstorage);// 初始化轨迹服务客户端lbstraceclient mtraceclient =newlbstraceclient(getapplicationcontext());
鹰眼轨迹数据传输采取定期打包回传的方式,以节省流量。开发者可以自定义定位频率和打包回传频率,频率可设置范围为:2~300秒。例如:定位频率为5s,打包回传频率为10s,则2次定位后打包回传一次。
// 定位周期(单位:秒)int gatherinterval =5;// 打包回传周期(单位:秒)int packinterval =10;// 设置定位和打包周期mtraceclient.setinterval(gatherinterval, packinterval);
// 初始化轨迹服务监听器ontracelistener mtracelistener =newontracelistener(){// 开启服务回调@overridepublicvoidonstarttracecallback(int status,string message){}// 停止服务回调@overridepublicvoidonstoptracecallback(int status,string message){}// 开启采集回调@overridepublicvoidonstartgathercallback(int status,string message){}// 停止采集回调@overridepublicvoidonstopgathercallback(int status,string message){}// 推送回调@overridepublicvoidonpushcallback(byte messageno,pushmessage message){}};
回调接口的错误码及消息内容,请参阅 。
以上设置完成后,可以开启轨迹追踪。开启轨迹追踪需进行两步:
1.开启鹰眼服务,启动鹰眼 service
// 开启服务mtraceclient.starttrace(mtrace, mtracelistener);
2. 开启轨迹采集,启动轨迹追踪。至此,正式开启轨迹追踪。
因为starttrace与startgather是异步执行,且startgather依赖starttrace执行开启服务成功,所以建议startgather在public void onstarttracecallback(int errorno, string message)回调返回错误码为0后,再进行调用执行,否则会出现服务开启失败12002的错误。
// 开启采集mtraceclient.startgather(mtracelistener);
结束轨迹追踪时,可以有两种选择:
1. 停止轨迹服务:此方法将同时停止轨迹服务和轨迹采集,完全结束鹰眼轨迹服务。若需再次启动轨迹追踪,需重新启动服务和轨迹采集,示例代码如下:
// 停止服务mtraceclient.stoptrace(mtrace, mtracelistener);
2. 停止轨迹采集:此方法将停止轨迹采集,但不停止轨迹服务(即,不再采集轨迹点了,但鹰眼 service 还存活)。若需再次启动轨迹追踪,直接调用mtraceclient.startgather()方法开启轨迹采集即可,无需再次启动轨迹服务。此方式可应用于频繁中断轨迹追踪的场景,可避免频繁启动服务。示例代码如下:
// 停止采集mtraceclient.stopgather(mtracelistener);
开启服务、开启采集、停止采集、停止服务四个接口共用ontracelistener监听器,每次调用时,请务必传入同一个监听器实例;或者在初始化时调用lbstraceclient.setontracelistener()设置监听器,后续调用以上四个接口时无须再次传入,如: 开启服务lbstraceclient.starttrace(mtrace, null) 开启采集lbstraceclient.startgather(null) 此时回调消息由setontracelistener()时传入的监听器接收
轨迹上传的同时, 可通过轨迹查询接口获取实时轨迹信息:
// 请求标识int tag =1;// 轨迹服务idlong serviceid =0;// 设备标识string entityname ="mytrace";// 创建历史轨迹请求实例historytrackrequest historytrackrequest =newhistorytrackrequest(tag, serviceid, entityname);//设置轨迹查询起止时间// 开始时间(单位:秒)long starttime =system.currenttimemillis()/1000-12*60*60;// 结束时间(单位:秒)long endtime =system.currenttimemillis()/1000;// 设置开始时间historytrackrequest.setstarttime(starttime);// 设置结束时间historytrackrequest.setendtime(endtime);// 初始化轨迹监听器ontracklistener mtracklistener =newontracklistener(){// 历史轨迹回调@overridepublicvoidonhistorytrackcallback(historytrackresponse response){}};// 查询历史轨迹mtraceclient.queryhistorytrack(historytrackrequest, mtracklistener);
查询获得历史轨迹后,可结合百度地图android sdk绘制并展示轨迹。
上一篇
下一篇
本篇文章对您是否有帮助?