tosbsdk-bd_release_1.0.7.aar(需依赖百度地图定位 'com.baidu.lbsyun:BaiduMapSDK_Location:9.3.5')
tosbsdk-gd_release_1.0.7.aar(需依赖高德地图定位 'com.amap.api:location:6.3.0')
tosbsdk-tx_release_1.0.7.aar(需依赖腾讯地图定位 'com.tencent.map.geolocation:TencentLocationSdk-openplatform:7.5.3')
说明:开发者按照项目中所采用的定位sdk选择对应的tosbsdk-*_*.aar下载即可。
完成SDK初始化且获得定位授权后方可调用装卸货
序号 | 层级 | 英文名称 | 中文名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|---|---|---|
1 | 1 | context | 上下文 | Context | 是 | 上下文 | |
2 | 1 | shippingNoteNumber | 运单号 | String | 18 | 是 | 创建运单成功后,由系统返回的运单号 |
3 | 1 | serialNumber | 分段分单号 | String | 18 | 是 | 分段运输和多车运输由四位数字组成,前两位代表一单多车的序号,后两位代表分段序号。若运输形式为一单一车填 0000 |
4 | 1 | state | 上报状态 | StateType | 是 | 交科院SDK回调结果,SUCCESS-上报成功, FAILED-上报失败,未使用交科院SDK时传UNKNOWN-场景1默认值 | |
5 | 1 | errorCode | 上报错误码 | String | 否 | 交科院SDK回调errCode,上报成功时默认传"" | |
6 | 1 | errorMsg | 上报错误信息 | String | 否 | 交科院SDK回调errMsg,上报成功时默认传"" | |
7 | 1 | callBack | 回调 | TOSBOpenApiCallBack | 是 | 回调 |
序号 | 层级 | 英文名称 | 中文名称 | 类型 | 说明 |
---|---|---|---|---|---|
1 | 1 | succ | 回调结果 | boolean | true-成功, false-异常 |
2 | 1 | code | 响应错误码 | String | |
3 | 1 | message | 响应错误信息 | String |
对LocationOpenApi类进行封装,代码如下:
import android.app.Application;
import android.content.Context;
import com.hdgq.locationlib.LocationOpenApi;
import com.hdgq.locationlib.entity.ShippingNoteInfo;
import com.hdgq.locationlib.listener.OnResultListener;
import com.hdgq.locationlib.listener.OnSendResultListener;
import com.khy.tosb.sdk.TOSBOpenApi;
import com.khy.tosb.sdk.TOSBOpenApiCallBack;
import java.util.List;
/**
* 封装 {@link LocationOpenApi}
*/
public class LocationOpenApiWrapper {
/**
* 调用方式:
* 1. 调用 {@link LocationOpenApiWrapper#init(Application)} , 然后调用 {@link LocationOpenApiWrapper#config(String, String)} 完成SDK初始化
* 2. 直接调用 {@link LocationOpenApiWrapper#initAndConfig(Application, String, String)} 完成SDK初始化
*/
public static void init(Application app) {
LocationOpenApi.init(app);
}
/**
* 需要配合 {@link LocationOpenApiWrapper#init(Application)} 一起使用
*
* @param appid 由系统分配,每个企业一个 appid 唯一
* @param secret 签名密钥
*/
public static void config(String appid, String secret) {
TOSBOpenApi.configAppIdAndSecurity(appid, secret);
}
/**
*
* @param app app
* @param appid 由系统分配,每个企业一个 appid 唯一
* @param secret 签名密钥
*/
public static void initAndConfig(Application app, String appid, String secret) {
init(app);
config(appid, secret);
}
/**
* 封装 {@link LocationOpenApi#auth(Context, String, String, String, String, OnResultListener)}
*/
public static void auth(Context context, String appId, String appSecurity, String enterpriseSenderCode, String environment, OnResultListener listener) {
// 设置环境 'debug' 或 'release'
TOSBOpenApi.configEnvironment(environment);
LocationOpenApi.auth(context, appId, appSecurity, enterpriseSenderCode, environment, listener);
}
/**
* 装货
* 封装 {@link LocationOpenApi#start(Context, String, String, String, ShippingNoteInfo[], OnResultListener)} 和 {@link TOSBOpenApi#start(Context, String, String, com.khy.tosb.sdk.impl.StateType, String, String, TOSBOpenApiCallBack)}
*/
public static void start(Context context, String vehicleNumber, String driverName, String remark, ShippingNoteInfo[] shippingNoteNumbers, OnResultListener listener) {
ShippingNoteInfo shippingNoteInfo = shippingNoteNumbers[0];
LocationOpenApi.start(context, vehicleNumber, driverName, remark, shippingNoteNumbers, new OnResultListener() {
@Override
public void onFailure(String s, String s1) {
TOSBOpenApi.start(context, shippingNoteInfo.getShippingNoteNumber(), shippingNoteInfo.getSerialNumber(), StateType.FAILED, s, s1, new TOSBOpenApiCallBack() {
@Override
public void onResult(boolean succ, String code, String message) {
//todo: 用户自行处理返回结果(succ, code, message)
// if (succ) {
// ...
// } else {
// ...
// }
if (listener != null) {
listener.onFailure(s, s1);
}
}
});
}
@Override
public void onSuccess(List<ShippingNoteInfo> list) {
TOSBOpenApi.start(context, shippingNoteInfo.getShippingNoteNumber(), shippingNoteInfo.getSerialNumber(), StateType.SUCCESS, "", "", new TOSBOpenApiCallBack() {
@Override
public void onResult(boolean succ, String code, String message) {
//todo: 用户自行处理返回结果(succ, code, message)
// if (succ) {
// ...
// } else {
// ...
// }
if (listener != null) {
listener.onSuccess(list);
}
}
});
}
});
}
/**
* 封装 {@link LocationOpenApi#send(Context, String, String, String, ShippingNoteInfo[], OnSendResultListener)}
*/
public static void send(Context context, String vehicleNumber, String driverName, String remark, ShippingNoteInfo[] shippingNoteNumbers, OnSendResultListener listener) {
LocationOpenApi.send(context, vehicleNumber, driverName, remark, shippingNoteNumbers, listener);
}
/**
* 封装 {@link LocationOpenApi#pause(Context, String, String, String, ShippingNoteInfo[], OnResultListener)}
*/
public static void pause(Context context, String vehicleNumber, String driverName, String remark, ShippingNoteInfo[] shippingNoteNumbers, OnResultListener listener) {
LocationOpenApi.pause(context, vehicleNumber, driverName, remark, shippingNoteNumbers, listener);
}
/**
* 封装 {@link LocationOpenApi#restart(Context, String, String, String, ShippingNoteInfo[], OnResultListener)}
*/
public static void restart(Context context, String vehicleNumber, String driverName, String remark, ShippingNoteInfo[] shippingNoteNumbers, OnResultListener listener) {
LocationOpenApi.restart(context, vehicleNumber, driverName, remark, shippingNoteNumbers, listener);
}
/**
* 卸货
* 封装 {@link LocationOpenApi#stop(Context, String, String, String, ShippingNoteInfo[], OnResultListener)} 和 {@link TOSBOpenApi#stop(Context, String, String, com.khy.tosb.sdk.impl.StateType, String, String, TOSBOpenApiCallBack)}
*/
public static void stop(Context context, String vehicleNumber, String driverName, String remark, ShippingNoteInfo[] shippingNoteNumbers, OnResultListener listener) {
ShippingNoteInfo shippingNoteInfo = shippingNoteNumbers[0];
LocationOpenApi.stop(context, vehicleNumber, driverName, remark, shippingNoteNumbers, new OnResultListener() {
@Override
public void onFailure(String s, String s1) {
TOSBOpenApi.stop(context, shippingNoteInfo.getShippingNoteNumber(), shippingNoteInfo.getSerialNumber(), StateType.FAILED, s, s1, new TOSBOpenApiCallBack() {
@Override
public void onResult(boolean succ, String code, String message) {
//todo: 用户自行处理返回结果(succ, code, message)
// if (succ) {
// ...
// } else {
// ...
// }
if (listener != null) {
listener.onFailure(s, s1);
}
}
});
}
@Override
public void onSuccess(List<ShippingNoteInfo> list) {
TOSBOpenApi.stop(context, shippingNoteInfo.getShippingNoteNumber(), shippingNoteInfo.getSerialNumber(), StateType.SUCCESS, "", "", new TOSBOpenApiCallBack() {
@Override
public void onResult(boolean succ, String code, String message) {
//todo: 用户自行处理返回结果(succ, code, message)
// if (succ) {
// ...
// } else {
// ...
// }
if (listener != null) {
listener.onSuccess(list);
}
}
});
}
});
}
}