android轨迹SDK是一套轨迹服务应用程序接口。您可以开发适用于移动设备的轨迹追踪应用,实现实时轨迹追踪、轨迹上报、历史轨迹查询、地理围栏报警等功能。
//轨迹上报 /** * 轨迹服务 */ protected static Trace trace = null; /** * entity标识 */ protected static String entityName = null; /** * 服务ID,开发者创建的服务对应的服务ID */ protected static long serviceId = xxx; // serviceId为开发者创建的服务ID /** * 轨迹服务类型(0 : 不建立soket长连接, 1 : 建立socket长连接但不上传位置数据,2 : 建立socket长连接并上传位置数据) 3: http连接 */ private int traceType = 3; // 初始化轨迹服务 trace = new Trace(getApplicationContext(), serviceId, entityName, traceType); /** * 开启轨迹服务 */ private void startTrace() { // 通过轨迹服务客户端client开启轨迹服务 MainActivity.client.startTrace(trace, startTraceListener); } /** * 回调OnStartTraceListener */ private void initOnStartTraceListener() { // 初始化startTraceListener startTraceListener = new OnStartTraceListener() { // 开启轨迹服务回调接口(arg0 : 消息编码,arg1 : 消息内容,详情查看类参考) public void onTraceCallback(int arg0, String arg1) { Log.e("服务开启",arg1); } }; }
//轨迹查询 TrackRequest trackRequest = new TrackRequest(); trackRequest.setEntity_name(MainActivity.entityName); trackRequest.setService_id(String.valueOf(MainActivity.serviceId)); trackRequest.setStart_time(String.valueOf(startTime)); trackRequest.setEnd_time(String.valueOf(endTime)); trackRequest.setPage_index(pageIndex); trackRequest.setPage_size(pageSize); MainActivity.client.queryHistory(trackRequest,trackListener); trackListener = new OnTrackListener() { @Override public void onRequestSucessCallback(String result) { } @Override public void onQueryHistoryTrackCallback(TrackResult result) { } }; }
//地理围栏 1.围栏创建 Fence fence = new Fence(); fence.setServiceId(serviceId); fence.setFenceName(entityName+"_fence"); fence.setFenceDesc("test"); fence.setCreator(entityName); fence.setMonitoredPersons(entityName); fence.setValidTimes("0800,2300"); fence.setValidCycle(4); fence.setValidDate(""); fence.setValidDays(""); fence.setShape(1); fence.setCoordType(3); fence.setCenter(longitude + "," + latitude); fence.setRadius(radius); fence.setCoordStr(""); fence.setAlarmCondition(3); client.createFence(fence, geoFenceListener); 2.围栏更新 Fence fence = new Fence(); fence.setServiceId(serviceId); fence.setFenceName(entityName+"_fence"); fence.setFenceDesc("test"); fence.setCreator(entityName); fence.setMonitoredPersons(entityName); fence.setValidTimes("0800,2300"); fence.setValidCycle(4); fence.setValidDate(""); fence.setValidDays(""); fence.setShape(1); fence.setCoordType(3); fence.setCenter(longitude + "," + latitude); fence.setRadius(Geofence.radius); fence.setCoordStr(""); fence.setAlarmCondition(3); //and create diff fence.setObservers(""); fence.setFenceId(String.valueOf(fenceId)); client.updateFence(fence, geoFenceListener); 3.围栏查询 // 创建者(entity标识) String creator = entityName; // 围栏ID列表 String fenceIds = "1,2,3"; MainActivity.client.getListFence(serviceId, creator, fenceIds, geoFenceListener); /** * OnGeoFenceListener 围栏回调 */ private void initOnGeoFenceListener() { // 初始化geoFenceListener geoFenceListener = new OnGeoFenceListener() { @Override public void onRequestFailedCallback(Result result) { } @Override public void onCreateCircularFenceCallback(FenceCreateResult result) { } @Override public void onUpdateFenceCallback(Result result) { } // 查询历史报警回调接口 @Override public void onQueryHistoryAlarmCallback(Result result) { } }; }