更新时间:2024-07-01 08:14:29下载pdf
对于出行产品而言,用户运营是强需求。出行产品提供非常丰富的高级能力,这些高级能力在行业里一般采用首年赠送,次年由 C 端用户自行选择续费,续费后则可享有全部功能。若不续费,则仅保留基础功能,双协议设备保留蓝牙相关的功能,单蜂窝协议禁用全部功能。
SDK 开发者可依据以下接口数据,校验相关增值服务逻辑。
类名(协议名) | 说明 |
---|---|
IODValueAddedServicesManager | 增值服务相关服务 |
ODValueAddedServicesModel | 增值服务模型 |
判断设备的增值服务是否在服务中。若不在服务中,则禁用需要付费的高级增值服务并引导 C 端用户进行续费。
接口说明
/**
* Get value-added service information based on device ID
*
* @param devId device ID
* @param listener callback
*/
fun fetchValueAddedServicesWithDevID(
devId: String,
listener: IThingResultCallback<ODValueAddedServicesModel?>
)
示例代码
OutdoorUtils.fetchValueAddedServicesWithDevID(deviceId, new IThingResultCallback<ODValueAddedServicesModel>() {
@Override
public void onSuccess(ODValueAddedServicesModel result) {
showToast("success");
}
@Override
public void onError(String errorCode, String errorMessage) {
showToast("onError code=" + errorCode + " message=" + errorMessage);
}
});
ODValueAddedServicesModel
数据模型
@Keep
data class ODValueAddedServicesModel(
// 必有,设备 uuid
val uuid: String,
// 必有,设备 ID
val devId: String,
// 能力集合
val abilityMap: Map<String, DeviceValuesAddStatusBean>? = mutableMapOf(),
)
@Keep
data class DeviceValuesAddStatusBean(
// 必有,增值服务能力编码,描述见 新增常量
val externalCode: String,
// 必有,true 拥有出行或者导航增值服务高级能力,false 不拥有出行或者导航增值服务高级能力。当为 false 时,下方所有字段都为空
val isPidHadVAS: Boolean?,
// 非必有,增值服务购买链接
val commodityUrl: String?,
// 非必有,增值服务结束时间
val effectiveEndDate: Long = -1,
// 非必有,增值服务开始时间
val effectiveStartDate: Long = -1,
// 非必有,true 代表已弹窗,false 代表未弹窗。只有符合出行增值服务高级能力,并且有激活中的 B 端服务上架的服务才提示是否已经弹窗,导航增值服务无需关心此字段
var hadPopup: Boolean = false,
// 非必有,true 代表增值服务在服务中,false 代表不在服务中,例如增值服务已过期或未购买
val inService: Boolean?,
// 非必有,inService 为 true 时才有值,增值服务能力提供者,god 代表涂鸦,brand 代表品牌方
val serviceProvider: String?
) {
fun getIsPidHadVAS(): Boolean? {
return isPidHadVAS
}
}
返回参数示例
{
"abilityMap": {
"outdoor_data_cloud_store": {
"commodityUrl": "url",
"effectiveEndDate": 12213213213,
"effectiveStartDate": 12213213213,
"externalCode": "outdoor_data_cloud_store",
"hadPopup": false,
"inService": true,
"isPidHadVAS": true,
"serviceProvider": "brand"
},
"travel_mapbox": {
"commodityUrl": "url",
"effectiveEndDate": 12213213213,
"effectiveStartDate": 12213213213,
"externalCode": "travel_mapbox",
"hadPopup": false,
"inService": true,
"isPidHadVAS": true,
"serviceProvider": "brand"
},
"outdoor_track_record_090_day": {
"commodityUrl": "url",
"effectiveEndDate": 12213213213,
"effectiveStartDate": 12213213213,
"externalCode": "outdoor_track_record_090_day",
"hadPopup": false,
"inService": true,
"isPidHadVAS": true,
"serviceProvider": "brand"
}
},
"devId": "1234",
"uuid": "1234"
}
增值服务能力编码为 externalCode
。
outdoor_data_cloud_store 数据云存
outdoor_track_record_007_day 轨迹记录循环存储 7 天
outdoor_track_record_030_day 轨迹记录循环存储 30 天
outdoor_track_record_090_day 轨迹记录循环存储 90 天
outdoor_track_record_180_day 轨迹记录循环存储 180 天
outdoor_track_record_365_day 轨迹记录循环存储 365 天
outdoor_riding_voice_broadcast 骑行播报
增值服务权益激活弹窗是否弹出过。弹出后,单击关闭操作的回调中调用此接口,会更新 ODValueAddedServicesModel
模型中 hadPopup
字段。
接口说明
/**
* Set the status of the value-added service pop-up box
*
*
* @param devId device ID
* @param hadPopup Reset the pop-up status
* @param listener callback
*/
fun setValueAddedServicesPopWithDevID(devId: String,hadPopup:Boolean, listener: IThingResultCallback<Boolean?>)
示例代码
OutdoorUtils.setValueAddedServicesPopWithDevID(deviceId, true, new IThingResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
showToast("success");
}
@Override
public void onError(String errorCode, String errorMessage) {
showToast("onError code=" + errorCode + " message=" + errorMessage);
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈