修改事件上报相关埋点策略,全部移到了IMogoTanluApiProvider里面,之前的视频抓取广播禁用,采用新的IMogoTanluApiProvider里面的upload方法进行视频抓取
This commit is contained in:
@@ -1,11 +1,20 @@
|
||||
package com.zhidao.mogo.tanlu.api;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.ArrayMap;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.commons.analytics.AnalyticsUtils;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.tanlu.IMogoTanluProvider;
|
||||
import com.mogo.service.tanlu.TanluUploadParams;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.zhidao.roadcondition.service.MainService;
|
||||
import com.zhidao.roadcondition.service.UploadParams;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import static com.zhidao.mogo.tanlu.api.TanluApiConst.MODULE_NAME;
|
||||
import static com.zhidao.mogo.tanlu.api.TanluApiConst.MODULE_PATH;
|
||||
@@ -18,15 +27,25 @@ import static com.zhidao.mogo.tanlu.api.TanluApiConst.MODULE_PATH;
|
||||
@Route(path = MODULE_PATH)
|
||||
public class MogoTanluApiProvider implements IMogoTanluProvider {
|
||||
private Context context;
|
||||
|
||||
/**
|
||||
* 上传情报
|
||||
*
|
||||
* @param type 情报类型
|
||||
* @param params 情报类型
|
||||
*/
|
||||
@Override
|
||||
public void uploadRoadCondition(String type) {
|
||||
Logger.d(MODULE_NAME, "uploadRoadCondition: " + type);
|
||||
MainService.Companion.launchService(context, type);
|
||||
public void uploadRoadCondition(TanluUploadParams params) {
|
||||
if(params!=null) {
|
||||
Logger.d(MODULE_NAME, "uploadRoadCondition: " + params);
|
||||
Map<String, Object> properties = new ArrayMap<>();
|
||||
properties.put("type", params.getEventType());
|
||||
properties.put("from", params.getFromType());
|
||||
AnalyticsUtils.track("v2x_share_type", properties);
|
||||
MainService.Companion.launchService(context, new UploadParams(params.getEventType(),
|
||||
params.getFromType(), params.getDuration()));
|
||||
}else{
|
||||
throw new IllegalArgumentException("TanluUploadParams 不允许为空");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -35,7 +54,7 @@ public class MogoTanluApiProvider implements IMogoTanluProvider {
|
||||
@Override
|
||||
public void startTanluService() {
|
||||
Logger.d(MODULE_NAME, "startTanluService");
|
||||
MainService.Companion.launchService(context, "0");
|
||||
MainService.Companion.launchService(context, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -35,25 +35,43 @@ const val AUTO_NAVI_END = 9 //结束导航
|
||||
|
||||
const val VALUE_DICT_DATA_TYPE = "deva_infomation_type" // dict 数据请求类型:情报类型数据
|
||||
|
||||
//上报的类型
|
||||
//事件类型
|
||||
const val TANLU_TRAFFIC_CHECK = "10002" //交通检查
|
||||
|
||||
const val TANLU_ROAD_CLOSURE = "10003" //封路
|
||||
|
||||
const val TANLU_ROAD_WORK = "10006" //施工
|
||||
|
||||
const val TANLU_ROAD_CONGESTION = "10007" //拥堵
|
||||
|
||||
const val TANLU_ROAD_PONDING = "10008" //积水
|
||||
|
||||
const val TANLU_ROAD_HEAVY_FOG = "10010" //大雾
|
||||
|
||||
const val TANLU_ROAD_ICING = "10011" //积冰
|
||||
|
||||
const val TANLU_ROAD_ACCIDENT = "10013" //事故
|
||||
|
||||
const val TANLU_ROAD_CURRENT = "10015" //实时路况
|
||||
|
||||
// 上报类型
|
||||
/**
|
||||
* 用户手点上报
|
||||
*/
|
||||
const val UPLOAD_FROM_USER = 1
|
||||
/**
|
||||
* 用户语音上报
|
||||
*/
|
||||
const val UPLOAD_FROM_VOICE = 2
|
||||
/**
|
||||
* 数据策略:拥堵自动上报
|
||||
*/
|
||||
const val UPLOAD_FROM_STRATEGY_BLOCK_AUTO = 3
|
||||
/**
|
||||
* 数据策略:已有事件云端校验
|
||||
*/
|
||||
const val UPLOAD_FROM_STRATEGY_CLOUD_CHECK = 4
|
||||
/**
|
||||
* 数据策略:交通事故上报
|
||||
*/
|
||||
const val UPLOAD_FROM_STRATEGY_ACCIDENT_AUTO = 5
|
||||
|
||||
/**
|
||||
* 默认视频抓取时长,单位是秒
|
||||
*/
|
||||
const val DEFAULT_VIDEO_DURATION = 10
|
||||
|
||||
const val DEF_NEWS_LABEL = "拥堵"
|
||||
const val DEF_NEWS_VALUE = "traffic_jam"
|
||||
|
||||
@@ -12,8 +12,8 @@ class ShareRoadReceiver : BroadcastReceiver() {
|
||||
Log.d("MainService", "ShareRoadReceiver ------> intent.action = " + intent.action)
|
||||
if (intent.action == "com.zhidao.share.roadcondition.action") {
|
||||
var type = intent.getStringExtra("type")
|
||||
Log.d("MainService", "ShareRoadReceiver type ----> $type")
|
||||
MainService.launchService(context, type)
|
||||
Log.e("MainService", "ShareRoadReceiver type ----> $type ----> 此方法已经废弃了,无法调起服务")
|
||||
// MainService.launchService(context, type)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,10 +36,10 @@ import java.util.concurrent.TimeUnit
|
||||
class MainService : Service() {
|
||||
|
||||
companion object {
|
||||
fun launchService(context: Context, type: String) {
|
||||
fun launchService(context: Context, params: UploadParams?) {
|
||||
val intent = Intent(context, MainService::class.java).apply {
|
||||
putExtra("type", type)
|
||||
Log.e("MainService", "launchService type = $type")
|
||||
Log.e("MainService", "launchService type = $params")
|
||||
putExtra("params", params)
|
||||
}
|
||||
context.startService(intent)
|
||||
}
|
||||
@@ -47,15 +47,19 @@ class MainService : Service() {
|
||||
|
||||
private lateinit var mainServiceHttpModel: MainServiceController
|
||||
private var mAlarmManager: AlarmManager =
|
||||
AbsMogoApplication.getApp().applicationContext.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||
AbsMogoApplication.getApp().applicationContext.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||
|
||||
//是否已经获取过策略
|
||||
var isGetStrategies: Boolean = false
|
||||
val TAG: String = this.javaClass.simpleName
|
||||
|
||||
//1是一次性,2是周期性
|
||||
var picType: Int = 0
|
||||
var videoType: Int = 0
|
||||
var shareType: String = "type"
|
||||
var isCustom: Boolean = false;
|
||||
var isCustom: Boolean = false
|
||||
|
||||
var params: UploadParams? = null
|
||||
|
||||
|
||||
//发送主动上报结果广播给外部
|
||||
@@ -76,25 +80,22 @@ class MainService : Service() {
|
||||
// LocationUtil.getInstance().initLocation()
|
||||
//参数说明:appKey: app唯一标识(比如:包名)
|
||||
CosUploadManagerImpl.getInstance(AbsMogoApplication.getApp().applicationContext)
|
||||
.init(BuildConfig.APPLICATION_ID, 2)
|
||||
.init(BuildConfig.APPLICATION_ID, 2)
|
||||
//初始化语音
|
||||
VoiceController.initVoice()
|
||||
|
||||
if (intent != null) {
|
||||
shareType = intent.getStringExtra("type")
|
||||
Log.d(TAG, "onStartCommand shareType = $shareType")
|
||||
if (shareType.equals(TANLU_ROAD_CONGESTION) || shareType.equals(TANLU_TRAFFIC_CHECK) || shareType.equals(
|
||||
TANLU_ROAD_CLOSURE
|
||||
) || shareType.equals(TANLU_ROAD_CURRENT)
|
||||
|| shareType.equals(TANLU_ROAD_PONDING) || shareType.equals(TANLU_ROAD_ICING) || shareType.equals(
|
||||
TANLU_ROAD_HEAVY_FOG
|
||||
)
|
||||
|| shareType.equals(TANLU_ROAD_ACCIDENT) || shareType.equals(
|
||||
TANLU_ROAD_WORK
|
||||
)
|
||||
) {
|
||||
params = intent.getParcelableExtra("params")
|
||||
params?.let {
|
||||
shareType = it.eventType
|
||||
Log.d(TAG, "onStartCommand shareType = $shareType")
|
||||
if (shareType == TANLU_ROAD_CONGESTION || shareType == TANLU_TRAFFIC_CHECK || shareType == TANLU_ROAD_CLOSURE || shareType == TANLU_ROAD_CURRENT
|
||||
|| shareType == TANLU_ROAD_PONDING || shareType == TANLU_ROAD_ICING || shareType == TANLU_ROAD_HEAVY_FOG
|
||||
|| shareType == TANLU_ROAD_ACCIDENT || shareType == TANLU_ROAD_WORK
|
||||
) {
|
||||
// takePhoto(1, false, true)
|
||||
takeVideo(10, isCustom = true, id = id)
|
||||
takeVideo(it.duration, isCustom = true, id = id)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Log.e(TAG, "intent == null ")
|
||||
@@ -193,14 +194,14 @@ class MainService : Service() {
|
||||
var info = LocationUtil.getInstance().getLocationInfo()
|
||||
Log.e("MainService", "getImageEvent long = ${info.longitude} ----> lat= ${info.latitude}")
|
||||
Log.d(
|
||||
"MainService",
|
||||
"getImageEvent url = " + getImageSuccessEvent.getImageUrl() + ">>>>type =" + getImageSuccessEvent.getType()
|
||||
"MainService",
|
||||
"getImageEvent url = " + getImageSuccessEvent.getImageUrl() + ">>>>type =" + getImageSuccessEvent.getType()
|
||||
)
|
||||
sendMarkerInfoReceiver(
|
||||
info.latitude,
|
||||
info.longitude,
|
||||
getImageSuccessEvent.getImageUrl(),
|
||||
getImageSuccessEvent.getType()
|
||||
info.latitude,
|
||||
info.longitude,
|
||||
getImageSuccessEvent.getImageUrl(),
|
||||
getImageSuccessEvent.getType()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -241,14 +242,14 @@ class MainService : Service() {
|
||||
private fun handleReportStrategy() {
|
||||
//1是一次性,2是周期性
|
||||
picType = getStrategyFrequency(
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
"pic",
|
||||
getStrategyType("pic")
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
"pic",
|
||||
getStrategyType("pic")
|
||||
)
|
||||
videoType = getStrategyFrequency(
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
"video",
|
||||
getStrategyType("video")
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
"video",
|
||||
getStrategyType("video")
|
||||
)
|
||||
Log.d("MainService", "handleReportStrategy picType = $picType ---videoType = $videoType")
|
||||
if (picType == 1) {
|
||||
@@ -284,10 +285,10 @@ class MainService : Service() {
|
||||
// log(TAG, "takePhoto -----2----->")
|
||||
//目前不支持连拍,只能定时2秒拍一张 第一期每次只拍一张
|
||||
Observable.intervalRange(0, 1, 0, 2_000, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(Consumer {
|
||||
CarCorderController.takePhoto(1, 1, false, isCustom, TANLU_ROAD_CURRENT)
|
||||
})
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(Consumer {
|
||||
CarCorderController.takePhoto(1, 1, false, isCustom, TANLU_ROAD_CURRENT)
|
||||
})
|
||||
// }
|
||||
|
||||
postPhotoAlarmTask(isInterval)
|
||||
@@ -297,15 +298,15 @@ class MainService : Service() {
|
||||
|
||||
//获取录像
|
||||
private fun takeVideo(
|
||||
duration: Int,
|
||||
isInterval: Boolean = false,
|
||||
isCustom: Boolean = false,
|
||||
id: Long = 0
|
||||
duration: Int,
|
||||
isInterval: Boolean = false,
|
||||
isCustom: Boolean = false,
|
||||
id: Long = 0
|
||||
) {
|
||||
Log.d("MainService", "takeVideo --------1---->")
|
||||
// if (isAuthorization(BaseApplication.getAppContext())) {
|
||||
// log(TAG, "takeVideo --------2---->")
|
||||
CarCorderController.takeVideo(1, duration, isCustom, id, if(isCustom) shareType else TANLU_ROAD_CURRENT)
|
||||
CarCorderController.takeVideo(1, duration, isCustom, id, if (isCustom) shareType else TANLU_ROAD_CURRENT)
|
||||
// }
|
||||
postVideoAlarmTask(isInterval)
|
||||
|
||||
@@ -321,22 +322,22 @@ class MainService : Service() {
|
||||
intent.putExtra("AlarmType", AlarmTypePic)
|
||||
var pendingIntent = PendingIntent.getBroadcast(this, AlarmTypePic, intent, 0)
|
||||
Log.d(
|
||||
"MainService",
|
||||
"postPhotoAlarmTask time =" + getStrategyInterval(
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
"pic",
|
||||
getStrategyType("pic")
|
||||
)
|
||||
)
|
||||
|
||||
mAlarmManager.setExact(
|
||||
AlarmManager.RTC, System.currentTimeMillis() +
|
||||
getStrategyInterval(
|
||||
"MainService",
|
||||
"postPhotoAlarmTask time =" + getStrategyInterval(
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
"pic",
|
||||
getStrategyType("pic")
|
||||
)
|
||||
, pendingIntent
|
||||
)
|
||||
)
|
||||
|
||||
mAlarmManager.setExact(
|
||||
AlarmManager.RTC, System.currentTimeMillis() +
|
||||
getStrategyInterval(
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
"pic",
|
||||
getStrategyType("pic")
|
||||
)
|
||||
, pendingIntent
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -348,28 +349,28 @@ class MainService : Service() {
|
||||
val videoIntent = Intent()
|
||||
videoIntent.action = alarmBroadAction
|
||||
videoIntent.putExtra(
|
||||
"duration", (VIDEO_DURATION_DEFAULT / 1000).toInt()
|
||||
"duration", (VIDEO_DURATION_DEFAULT / 1000).toInt()
|
||||
)
|
||||
videoIntent.putExtra("AlarmType", AlarmTypeVideo)
|
||||
var videoPendingIntent =
|
||||
PendingIntent.getBroadcast(this, AlarmTypeVideo, videoIntent, 0)
|
||||
PendingIntent.getBroadcast(this, AlarmTypeVideo, videoIntent, 0)
|
||||
Log.d(
|
||||
"MainService",
|
||||
"postVideoAlarmTask time =" + getStrategyInterval(
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
"video",
|
||||
getStrategyType("video")
|
||||
)
|
||||
)
|
||||
|
||||
mAlarmManager.setExact(
|
||||
AlarmManager.RTC, System.currentTimeMillis() +
|
||||
getStrategyInterval(
|
||||
"MainService",
|
||||
"postVideoAlarmTask time =" + getStrategyInterval(
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
"video",
|
||||
getStrategyType("video")
|
||||
)
|
||||
, videoPendingIntent
|
||||
)
|
||||
)
|
||||
|
||||
mAlarmManager.setExact(
|
||||
AlarmManager.RTC, System.currentTimeMillis() +
|
||||
getStrategyInterval(
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
"video",
|
||||
getStrategyType("video")
|
||||
)
|
||||
, videoPendingIntent
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.zhidao.roadcondition.service
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
|
||||
class UploadParams(val eventType:String,val fromType:String,val duration:Int) : Parcelable {
|
||||
constructor(parcel: Parcel) : this(
|
||||
parcel.readString()!!,
|
||||
parcel.readString()!!,
|
||||
parcel.readInt())
|
||||
|
||||
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||
parcel.writeString(eventType)
|
||||
parcel.writeString(fromType)
|
||||
parcel.writeInt(duration)
|
||||
}
|
||||
|
||||
|
||||
|
||||
override fun describeContents(): Int {
|
||||
return 0
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return "UploadParams(eventType='$eventType', fromType='$fromType', duration=$duration)"
|
||||
}
|
||||
|
||||
companion object CREATOR : Parcelable.Creator<UploadParams> {
|
||||
override fun createFromParcel(parcel: Parcel): UploadParams {
|
||||
return UploadParams(parcel)
|
||||
}
|
||||
|
||||
override fun newArray(size: Int): Array<UploadParams?> {
|
||||
return arrayOfNulls(size)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,6 @@ import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.commons.analytics.AnalyticsUtils;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
|
||||
@@ -33,15 +32,14 @@ import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.intent.IMogoIntentManager;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
import com.mogo.service.share.IMogoShareManager;
|
||||
import com.mogo.service.tanlu.IMogoTanluProvider;
|
||||
import com.mogo.service.tanlu.TanluUploadParams;
|
||||
import com.mogo.utils.TipToast;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.mogo.module.share.bean.StepAfterAuthKt.STEP_AFTER_AUTH_TYPE_SEEK_HELP;
|
||||
import static com.mogo.module.share.bean.StepAfterAuthKt.STEP_AFTER_AUTH_TYPE_SHOW_DIALOG;
|
||||
import static com.mogo.module.share.bean.StepAfterAuthKt.STEP_AFTER_AUTH_TYPE_UPLOAD;
|
||||
@@ -50,15 +48,6 @@ import static com.mogo.module.share.constant.ShareConstants.CMD_ROAD_CLOSURE;
|
||||
import static com.mogo.module.share.constant.ShareConstants.CMD_TRAFFIC_CHECK;
|
||||
import static com.mogo.module.share.constant.ShareConstants.CMD_UPLOAD_ACCIDENT;
|
||||
import static com.mogo.module.share.constant.ShareConstants.CMD_UPLOAD_BLOCK;
|
||||
import static com.mogo.module.share.constant.ShareConstants.TYPE_ACCIDENT;
|
||||
import static com.mogo.module.share.constant.ShareConstants.TYPE_BLOCK;
|
||||
import static com.mogo.module.share.constant.ShareConstants.TYPE_CLOSURE;
|
||||
import static com.mogo.module.share.constant.ShareConstants.TYPE_DENSE_FOG;
|
||||
import static com.mogo.module.share.constant.ShareConstants.TYPE_REAL_TIME_TRAFFIC;
|
||||
import static com.mogo.module.share.constant.ShareConstants.TYPE_ROAD_CONSTRUCTION;
|
||||
import static com.mogo.module.share.constant.ShareConstants.TYPE_ROAD_ICY;
|
||||
import static com.mogo.module.share.constant.ShareConstants.TYPE_STAGNANT_WATER;
|
||||
import static com.mogo.module.share.constant.ShareConstants.TYPE_TRAFFIC_CHECK;
|
||||
import static com.mogo.module.share.constant.ShareConstants.UNWAKE_CANCEL_SHARE;
|
||||
import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_ACCIDENT;
|
||||
import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_DENSE_FOG;
|
||||
@@ -82,6 +71,15 @@ import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_NO_REPLY_S
|
||||
import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_PUB_ROAD_CONDITION;
|
||||
import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_PUB_TROUBLE_HELP;
|
||||
import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_SHARE_DIALOG_CLOSE;
|
||||
import static com.mogo.service.tanlu.IMogoTanluProvider.TYPE_ACCIDENT;
|
||||
import static com.mogo.service.tanlu.IMogoTanluProvider.TYPE_BLOCK;
|
||||
import static com.mogo.service.tanlu.IMogoTanluProvider.TYPE_CLOSURE;
|
||||
import static com.mogo.service.tanlu.IMogoTanluProvider.TYPE_DENSE_FOG;
|
||||
import static com.mogo.service.tanlu.IMogoTanluProvider.TYPE_REAL_TIME_TRAFFIC;
|
||||
import static com.mogo.service.tanlu.IMogoTanluProvider.TYPE_ROAD_CONSTRUCTION;
|
||||
import static com.mogo.service.tanlu.IMogoTanluProvider.TYPE_ROAD_ICY;
|
||||
import static com.mogo.service.tanlu.IMogoTanluProvider.TYPE_STAGNANT_WATER;
|
||||
import static com.mogo.service.tanlu.IMogoTanluProvider.TYPE_TRAFFIC_CHECK;
|
||||
|
||||
/**
|
||||
* 分享框的逻辑都放到这里吧
|
||||
@@ -153,7 +151,9 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo
|
||||
realShowDialog();
|
||||
break;
|
||||
case STEP_AFTER_AUTH_TYPE_UPLOAD:
|
||||
UploadHelper.INSTANCE.upload(mContext, stepAfterAuth.getUploadType(),stepAfterAuth.getForcePlayVoice());
|
||||
TanluUploadParams params =
|
||||
new TanluUploadParams(stepAfterAuth.getUploadType(), IMogoTanluProvider.UPLOAD_FROM_VOICE);
|
||||
UploadHelper.INSTANCE.upload(mContext, params,stepAfterAuth.getForcePlayVoice());
|
||||
dismissShareDialog();
|
||||
break;
|
||||
case STEP_AFTER_AUTH_TYPE_SEEK_HELP:
|
||||
@@ -245,41 +245,36 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_BLOCK,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_BLOCK,false);
|
||||
uploadFromVoice(TYPE_BLOCK);
|
||||
}
|
||||
trackVoiceWithType(TYPE_BLOCK);
|
||||
break;
|
||||
case UNWAKE_UPLOAD_TRAFFIC_CHECK:
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_TRAFFIC_CHECK,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_TRAFFIC_CHECK,false);
|
||||
uploadFromVoice(TYPE_TRAFFIC_CHECK);
|
||||
}
|
||||
trackVoiceWithType(TYPE_TRAFFIC_CHECK);
|
||||
break;
|
||||
case UNWAKE_UPLOAD_ROAD_CLOSURE:
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_CLOSURE,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_CLOSURE,false);
|
||||
uploadFromVoice(TYPE_CLOSURE);
|
||||
}
|
||||
trackVoiceWithType(TYPE_CLOSURE);
|
||||
break;
|
||||
case UNWAKE_UPLOAD_ACCIDENT:
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ACCIDENT,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_ACCIDENT,false);
|
||||
uploadFromVoice(TYPE_ACCIDENT);
|
||||
}
|
||||
trackVoiceWithType(TYPE_ACCIDENT);
|
||||
break;
|
||||
case UNWAKE_UPLOAD_REAL_TIME_TRAFFIC:
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_REAL_TIME_TRAFFIC,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_REAL_TIME_TRAFFIC,false);
|
||||
uploadFromVoice(TYPE_REAL_TIME_TRAFFIC);
|
||||
}
|
||||
trackVoiceWithType(TYPE_REAL_TIME_TRAFFIC);
|
||||
break;
|
||||
case UNWAKE_UPLOAD_SEEK_HELP:
|
||||
if (needAuth()) {
|
||||
@@ -293,46 +288,34 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_STAGNANT_WATER,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_STAGNANT_WATER,false);
|
||||
uploadFromVoice(TYPE_STAGNANT_WATER);
|
||||
}
|
||||
trackVoiceWithType(TYPE_STAGNANT_WATER);
|
||||
break;
|
||||
case UNWAKE_UPLOAD_ROAD_ICY:
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_ICY,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_ICY,false);
|
||||
uploadFromVoice(TYPE_ROAD_ICY);
|
||||
}
|
||||
trackVoiceWithType(TYPE_ROAD_ICY);
|
||||
break;
|
||||
case UNWAKE_UPLOAD_DENSE_FOG:
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_DENSE_FOG,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_DENSE_FOG,false);
|
||||
uploadFromVoice(TYPE_DENSE_FOG);
|
||||
}
|
||||
trackVoiceWithType(TYPE_DENSE_FOG);
|
||||
break;
|
||||
case UNWAKE_UPLOAD_ROAD_CONSTRUCTION:
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_CONSTRUCTION,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_CONSTRUCTION,false);
|
||||
uploadFromVoice(TYPE_ROAD_CONSTRUCTION);
|
||||
}
|
||||
trackVoiceWithType(TYPE_ROAD_CONSTRUCTION);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
//TODO V2X语音免唤醒词信息上报埋点v2x_share_type
|
||||
private void trackVoiceWithType(String type){
|
||||
Map<String, Object> properties = new HashMap<>();
|
||||
properties.put("type",type);
|
||||
properties.put("from","1");
|
||||
AnalyticsUtils.track("v2x_share_type",properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onIntentReceived(String intentStr, Intent intent) {
|
||||
// 此处只接受处理语音相关广播
|
||||
@@ -357,64 +340,57 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_STAGNANT_WATER,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_STAGNANT_WATER,false);
|
||||
uploadFromVoice(TYPE_STAGNANT_WATER);
|
||||
dismissShareDialog();
|
||||
}
|
||||
trackVoiceWithType(TYPE_STAGNANT_WATER);
|
||||
break;
|
||||
case "积冰":
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_ICY,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_ICY,false);
|
||||
uploadFromVoice(TYPE_ROAD_ICY);
|
||||
dismissShareDialog();
|
||||
}
|
||||
trackVoiceWithType(TYPE_ROAD_ICY);
|
||||
break;
|
||||
case "雾":
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_DENSE_FOG,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_DENSE_FOG,false);
|
||||
uploadFromVoice(TYPE_DENSE_FOG);
|
||||
dismissShareDialog();
|
||||
}
|
||||
trackVoiceWithType(TYPE_DENSE_FOG);
|
||||
break;
|
||||
case "交通事故":
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ACCIDENT,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_ACCIDENT,false);
|
||||
uploadFromVoice(TYPE_ACCIDENT);
|
||||
dismissShareDialog();
|
||||
}
|
||||
trackVoiceWithType(TYPE_ACCIDENT);
|
||||
break;
|
||||
case "施工":
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_CONSTRUCTION,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_CONSTRUCTION,false);
|
||||
uploadFromVoice(TYPE_ROAD_CONSTRUCTION);
|
||||
dismissShareDialog();
|
||||
}
|
||||
trackVoiceWithType(TYPE_ROAD_CONSTRUCTION);
|
||||
break;
|
||||
case "封路":
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_CLOSURE,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_CLOSURE,false);
|
||||
uploadFromVoice(TYPE_CLOSURE);
|
||||
dismissShareDialog();
|
||||
}
|
||||
trackVoiceWithType(TYPE_CLOSURE);
|
||||
break;
|
||||
case "交通检查":
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_TRAFFIC_CHECK,false);
|
||||
} else {
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_TRAFFIC_CHECK,false);
|
||||
uploadFromVoice(TYPE_TRAFFIC_CHECK);
|
||||
dismissShareDialog();
|
||||
}
|
||||
trackVoiceWithType(TYPE_TRAFFIC_CHECK);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -429,20 +405,18 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_REAL_TIME_TRAFFIC,false);
|
||||
} else {
|
||||
Logger.d(TAG, "分享框准备触发上报实时路况");
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_REAL_TIME_TRAFFIC,false);
|
||||
uploadFromVoice(TYPE_REAL_TIME_TRAFFIC);
|
||||
dismissShareDialog();
|
||||
}
|
||||
trackVoiceWithType(TYPE_REAL_TIME_TRAFFIC);
|
||||
break;
|
||||
case "拥堵":
|
||||
if (needAuth()) {
|
||||
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_BLOCK,false);
|
||||
} else {
|
||||
Logger.d(TAG, "分享框准备触发上报拥堵");
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_BLOCK,false);
|
||||
uploadFromVoice(TYPE_BLOCK);
|
||||
dismissShareDialog();
|
||||
}
|
||||
trackVoiceWithType(TYPE_BLOCK);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -455,7 +429,7 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo
|
||||
break;
|
||||
case UNWAKE_UPLOAD_ROAD_CONDITION:
|
||||
Logger.d(TAG, "免唤醒准备触发上报拥堵");
|
||||
UploadHelper.INSTANCE.upload(mContext, TYPE_BLOCK,false);
|
||||
uploadFromVoice(TYPE_BLOCK);
|
||||
dismissShareDialog();
|
||||
break;
|
||||
default:
|
||||
@@ -466,6 +440,12 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo
|
||||
}
|
||||
}
|
||||
|
||||
private void uploadFromVoice(String eventType) {
|
||||
TanluUploadParams params = new TanluUploadParams(eventType,
|
||||
IMogoTanluProvider.UPLOAD_FROM_VOICE);
|
||||
UploadHelper.INSTANCE.upload(mContext, params,false);
|
||||
}
|
||||
|
||||
private void seekHelp() {
|
||||
Intent seekHelp = new Intent(mContext, VoiceCmdService.class);
|
||||
seekHelp.putExtra(ShareConstants.VOICE_CMD_SERVICE_EVENT_KEY,
|
||||
|
||||
@@ -82,15 +82,4 @@ public class ShareConstants {
|
||||
*/
|
||||
public static final String VOICE_CMD_PUB_ROAD_CONDITION = "com.zhidao.pathfinder.report" +
|
||||
".roadCondition";
|
||||
|
||||
public static final String TYPE_BLOCK = "10007";
|
||||
public static final String TYPE_TRAFFIC_CHECK = "10002";
|
||||
public static final String TYPE_CLOSURE = "10003";
|
||||
public static final String TYPE_ACCIDENT = "10013";
|
||||
public static final String TYPE_REAL_TIME_TRAFFIC = "10015";
|
||||
public static final String TYPE_SEEK_HELP = "6";
|
||||
public static final String TYPE_STAGNANT_WATER = "10008";
|
||||
public static final String TYPE_ROAD_ICY = "10011";
|
||||
public static final String TYPE_DENSE_FOG = "10010";
|
||||
public static final String TYPE_ROAD_CONSTRUCTION = "10006";
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ import android.widget.TextView;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.module.common.dialog.BaseFloatDialog;
|
||||
import com.mogo.module.share.R;
|
||||
import com.mogo.module.share.constant.ShareConstants;
|
||||
import com.mogo.module.share.manager.ISeekHelpListener;
|
||||
import com.mogo.module.share.manager.SeekHelpManager;
|
||||
import com.mogo.module.share.manager.UploadHelper;
|
||||
@@ -16,11 +15,10 @@ import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.analytics.IMogoAnalytics;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
import com.mogo.service.tanlu.IMogoTanluProvider;
|
||||
import com.mogo.service.tanlu.TanluUploadParams;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* @author lixiaopeng
|
||||
@@ -121,21 +119,17 @@ public class LaucherShareDialog extends BaseFloatDialog implements View.OnClickL
|
||||
if (id == R.id.tvBlock) {
|
||||
//拥堵
|
||||
Logger.d(TAG,"点击拥堵");
|
||||
traceTanluData("1");
|
||||
sendShareReceiver(ShareConstants.TYPE_BLOCK);
|
||||
trackWithType(ShareConstants.TYPE_BLOCK);
|
||||
sendShareReceiver(IMogoTanluProvider.TYPE_BLOCK);
|
||||
dismiss();
|
||||
} else if (id == R.id.tvTrafficCheck) {
|
||||
//交通检查
|
||||
Logger.d(TAG,"点击交通检查");
|
||||
sendShareReceiver(ShareConstants.TYPE_TRAFFIC_CHECK);
|
||||
trackWithType(ShareConstants.TYPE_TRAFFIC_CHECK);
|
||||
sendShareReceiver(IMogoTanluProvider.TYPE_TRAFFIC_CHECK);
|
||||
dismiss();
|
||||
} else if (id == R.id.tvClosure) {
|
||||
//封路
|
||||
Logger.d(TAG,"点击封路");
|
||||
sendShareReceiver(ShareConstants.TYPE_CLOSURE);
|
||||
trackWithType(ShareConstants.TYPE_CLOSURE);
|
||||
sendShareReceiver(IMogoTanluProvider.TYPE_CLOSURE);
|
||||
dismiss();
|
||||
} else if (id == R.id.tvSeekHelp) {
|
||||
// 故障求助
|
||||
@@ -145,48 +139,35 @@ public class LaucherShareDialog extends BaseFloatDialog implements View.OnClickL
|
||||
} else if (id == R.id.tvAccident) {
|
||||
// 事故
|
||||
Logger.d(TAG,"点击事故");
|
||||
sendShareReceiver(ShareConstants.TYPE_ACCIDENT);
|
||||
trackWithType(ShareConstants.TYPE_ACCIDENT);
|
||||
sendShareReceiver(IMogoTanluProvider.TYPE_ACCIDENT);
|
||||
dismiss();
|
||||
} else if (id == R.id.tvConstruction) {
|
||||
// 道路施工
|
||||
Logger.d(TAG,"点击道路施工");
|
||||
sendShareReceiver(ShareConstants.TYPE_ROAD_CONSTRUCTION);
|
||||
trackWithType(ShareConstants.TYPE_ROAD_CONSTRUCTION);
|
||||
sendShareReceiver(IMogoTanluProvider.TYPE_ROAD_CONSTRUCTION);
|
||||
dismiss();
|
||||
} else if (id == R.id.tvRealTimeTraffic) {
|
||||
// 实时路况
|
||||
Logger.d(TAG,"点击实时路况");
|
||||
sendShareReceiver(ShareConstants.TYPE_REAL_TIME_TRAFFIC);
|
||||
trackWithType(ShareConstants.TYPE_REAL_TIME_TRAFFIC);
|
||||
sendShareReceiver(IMogoTanluProvider.TYPE_REAL_TIME_TRAFFIC);
|
||||
dismiss();
|
||||
} else if (id == R.id.tvStagnantWater) {
|
||||
// 道路积水
|
||||
Logger.d(TAG,"点击道路积水");
|
||||
sendShareReceiver(ShareConstants.TYPE_STAGNANT_WATER);
|
||||
trackWithType(ShareConstants.TYPE_STAGNANT_WATER);
|
||||
sendShareReceiver(IMogoTanluProvider.TYPE_STAGNANT_WATER);
|
||||
dismiss();
|
||||
} else if (id == R.id.tvRoadIcy) {
|
||||
// 道路结冰
|
||||
Logger.d(TAG,"点击道路结冰");
|
||||
sendShareReceiver(ShareConstants.TYPE_ROAD_ICY);
|
||||
trackWithType(ShareConstants.TYPE_ROAD_ICY);
|
||||
sendShareReceiver(IMogoTanluProvider.TYPE_ROAD_ICY);
|
||||
dismiss();
|
||||
} else if (id == R.id.tvDenseFog) {
|
||||
// 浓雾
|
||||
Logger.d(TAG,"点击浓雾");
|
||||
sendShareReceiver(ShareConstants.TYPE_DENSE_FOG);
|
||||
trackWithType(ShareConstants.TYPE_DENSE_FOG);
|
||||
sendShareReceiver(IMogoTanluProvider.TYPE_DENSE_FOG);
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
//TODO 手动信息上报埋点
|
||||
private void trackWithType(String type){
|
||||
Map<String, Object> properties = new HashMap<>();
|
||||
properties.put("type",type);
|
||||
properties.put("from","2");
|
||||
mAnalytics.track(ShareConstants.LAUNCHER_SHARE_TYPE, properties);
|
||||
}
|
||||
|
||||
private ISeekHelpListener seekListener = new ISeekHelpListener() {
|
||||
@Override
|
||||
@@ -208,68 +189,8 @@ public class LaucherShareDialog extends BaseFloatDialog implements View.OnClickL
|
||||
* 发送广播 1拥堵,2交通检查,3封路
|
||||
*/
|
||||
private void sendShareReceiver(String type) {
|
||||
UploadHelper.INSTANCE.upload(mContext, type,true);
|
||||
TanluUploadParams params = new TanluUploadParams(type, IMogoTanluProvider.UPLOAD_FROM_USER);
|
||||
UploadHelper.INSTANCE.upload(mContext, params,true);
|
||||
}
|
||||
|
||||
/**
|
||||
* type=1 路况
|
||||
* <p>
|
||||
* type=2 油价
|
||||
* <p>
|
||||
* type=3 交通检查
|
||||
* <p>
|
||||
* type=4 封路
|
||||
*
|
||||
* @param type
|
||||
*/
|
||||
|
||||
private void traceTanluData(String type) {
|
||||
Map<String, Object> properties = new HashMap<>();
|
||||
properties.put("type", type);
|
||||
mAnalytics.track(ShareConstants.CARNET_USER_UPLOAD, properties);
|
||||
}
|
||||
|
||||
|
||||
// public void show(){
|
||||
// Logger.d(TAG,"使用windowManager实现");
|
||||
// if (!isShown) {
|
||||
// windowManager = (WindowManager) mContext.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
|
||||
// WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
|
||||
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
// layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
|
||||
// } else {
|
||||
// layoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
|
||||
// }
|
||||
// layoutParams.format = PixelFormat.TRANSLUCENT;
|
||||
// layoutParams.gravity = Gravity.START | Gravity.TOP;
|
||||
//// mWindowLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
|
||||
// // FLAG_LAYOUT_IN_SCREEN:将window放置在整个屏幕之内,无视其他的装饰(比如状态栏); FLAG_NOT_TOUCH_MODAL:不阻塞事件传递到后面的窗口
|
||||
// layoutParams.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
|
||||
// if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) {
|
||||
// layoutParams.width = 1920;
|
||||
// layoutParams.height = 1080;
|
||||
// }else {
|
||||
// layoutParams.width = WindowUtils.getScreenWidth(mContext);
|
||||
// layoutParams.height = WindowUtils.getScreenHeight(mContext);
|
||||
// }
|
||||
// Logger.d("ShareDialog", "width: " + layoutParams.width + " height: " + layoutParams.height);
|
||||
// //后面变暗区域透明...
|
||||
// layoutParams.dimAmount = 0;
|
||||
// layoutParams.x = 0;
|
||||
// layoutParams.y = 0;
|
||||
// initView();
|
||||
// initListener();
|
||||
// windowManager.addView(body, layoutParams);
|
||||
// isShown = true;
|
||||
// }
|
||||
// }
|
||||
|
||||
// public void dismiss(){
|
||||
// if (isShown && windowManager != null && body != null) {
|
||||
// windowManager.removeViewImmediate(body);
|
||||
// windowManager = null;
|
||||
// isShown = false;
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
import com.mogo.module.share.ShareControl
|
||||
import com.mogo.module.share.dialog.LaucherShareDialog
|
||||
import com.mogo.service.tanlu.TanluUploadParams
|
||||
import com.mogo.utils.TipToast
|
||||
import com.mogo.utils.logger.Logger
|
||||
|
||||
@@ -13,7 +14,7 @@ import com.mogo.utils.logger.Logger
|
||||
* 上报工具类
|
||||
*/
|
||||
object UploadHelper {
|
||||
fun upload(context:Context, type: String,forcePlayVoice:Boolean = false) {
|
||||
fun upload(context:Context, type: TanluUploadParams,forcePlayVoice:Boolean = false) {
|
||||
if(ServiceApisManager.serviceApis.statusManagerApi.isUploading){
|
||||
Logger.d("UploadHelper", "正在上报===")
|
||||
TipToast.tip("正在上报,请稍后重试")
|
||||
|
||||
@@ -45,12 +45,38 @@ public interface IMogoTanluProvider extends IProvider {
|
||||
*/
|
||||
String TYPE_ROAD_CONSTRUCTION = "10006";
|
||||
|
||||
/**
|
||||
* 用户手点上报
|
||||
*/
|
||||
String UPLOAD_FROM_USER = "2";
|
||||
/**
|
||||
* 用户语音上报
|
||||
*/
|
||||
String UPLOAD_FROM_VOICE = "1";
|
||||
/**
|
||||
* 数据策略:拥堵自动上报
|
||||
*/
|
||||
String UPLOAD_FROM_STRATEGY_BLOCK_AUTO = "3";
|
||||
/**
|
||||
* 数据策略:已有事件云端校验
|
||||
*/
|
||||
String UPLOAD_FROM_STRATEGY_CLOUD_CHECK = "4";
|
||||
/**
|
||||
* 数据策略:交通事故上报
|
||||
*/
|
||||
String UPLOAD_FROM_STRATEGY_ACCIDENT_AUTO = "5";
|
||||
|
||||
/**
|
||||
* 默认视频抓取时长
|
||||
*/
|
||||
int DEFAULT_VIDEO_DURATION = 10;
|
||||
|
||||
/**
|
||||
* 上传情报
|
||||
*
|
||||
* @param type 情报类型
|
||||
* @param params 情报类型
|
||||
*/
|
||||
void uploadRoadCondition(String type);
|
||||
void uploadRoadCondition(TanluUploadParams params);
|
||||
|
||||
/**
|
||||
* 开启探路业务服务
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
package com.mogo.service.tanlu;
|
||||
|
||||
/**
|
||||
* 探路事件上报参数封装
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public class TanluUploadParams {
|
||||
/**
|
||||
* 事件类型
|
||||
*
|
||||
* 参考 {@link IMogoTanluProvider#TYPE_BLOCK}
|
||||
*/
|
||||
private String eventType;
|
||||
/**
|
||||
* 上报类型
|
||||
*
|
||||
* 参考 {@link IMogoTanluProvider#UPLOAD_FROM_USER}
|
||||
*/
|
||||
private String fromType;
|
||||
/**
|
||||
* 视频时长
|
||||
*/
|
||||
private int duration = IMogoTanluProvider.DEFAULT_VIDEO_DURATION;
|
||||
|
||||
public TanluUploadParams(String eventType){
|
||||
this(eventType, IMogoTanluProvider.UPLOAD_FROM_USER);
|
||||
}
|
||||
|
||||
public TanluUploadParams(String eventType, String fromType) {
|
||||
if (eventType == null) {
|
||||
eventType = IMogoTanluProvider.TYPE_BLOCK;
|
||||
}
|
||||
if (fromType == null) {
|
||||
fromType = IMogoTanluProvider.UPLOAD_FROM_USER;
|
||||
}
|
||||
this.eventType = eventType;
|
||||
this.fromType = fromType;
|
||||
}
|
||||
|
||||
public String getEventType() {
|
||||
return eventType;
|
||||
}
|
||||
|
||||
public void setEventType(String eventType) {
|
||||
this.eventType = eventType;
|
||||
}
|
||||
|
||||
public String getFromType() {
|
||||
return fromType;
|
||||
}
|
||||
|
||||
public void setFromType(String fromType) {
|
||||
this.fromType = fromType;
|
||||
}
|
||||
|
||||
public int getDuration() {
|
||||
return duration;
|
||||
}
|
||||
|
||||
public void setDuration(int duration) {
|
||||
this.duration = duration;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TanluUploadParams{" +
|
||||
"eventType='" + eventType + '\'' +
|
||||
", fromType='" + fromType + '\'' +
|
||||
", duration=" + duration +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user