From 797d0aac0c9636aa0835a6ec4eac933dd11f1867 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 13 Apr 2020 14:53:36 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=B7=BB=E5=8A=A0=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E6=94=AF=E6=8C=81=EF=BC=8C=E6=9C=AA=E6=B7=BB=E5=8A=A0=E5=AE=8C?= =?UTF-8?q?=E6=88=90=EF=BC=8C=E9=9C=80=E8=81=94=E8=B0=83=202.=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=8A=B6=E6=80=81=E8=AE=BE=E7=BD=AE=EF=BC=8C=E5=85=B6?= =?UTF-8?q?=E4=B8=AD=E4=B8=8Eadas=E5=90=8C=E6=AD=A5=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E6=94=B9=E5=8F=98=E8=87=AA=E8=BD=A6=E5=9B=BE=E7=89=87=E7=94=B1?= =?UTF-8?q?Launcher=E5=86=85=E9=83=A8=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/AndroidManifest.xml | 6 +++++- .../mogo/module/share/ShareVoiceCmdReceiver.kt | 17 ++++++++--------- .../com/mogo/module/share/VoiceCmdService.kt | 2 +- .../module/share/manager/SeekHelpManager.kt | 16 +++++++++++++--- 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/modules/mogo-module-share/src/main/AndroidManifest.xml b/modules/mogo-module-share/src/main/AndroidManifest.xml index 84394ab363..8ca40a6422 100644 --- a/modules/mogo-module-share/src/main/AndroidManifest.xml +++ b/modules/mogo-module-share/src/main/AndroidManifest.xml @@ -1,7 +1,11 @@ - + + + + + diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt index 589c66705d..3b2cd1e96e 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt @@ -6,18 +6,17 @@ import android.content.Intent import com.mogo.module.share.constant.ShareConstants /** - * 用于接收唤醒词指令 + * 用于接收唤醒词指令,现在只接收 com.zhidao.speech.awake.notify 这一条广播 */ -class ShareVoiceCmdReceiver:BroadcastReceiver() { - override fun onReceive(context: Context?, intent: Intent?) { +class ShareVoiceCmdReceiver : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { // todo 接收唤醒词指令 - - // todo 开启服务,准备上报求助 - context?.let { - val seekHelp = Intent(it, VoiceCmdService::class.java) + val command = intent.getStringExtra("command") + if (command == "zhunbeishangbao") { + //todo 开启服务,准备上报求助 + val seekHelp = Intent(context, VoiceCmdService::class.java) seekHelp.putExtra(ShareConstants.VOICE_CMD_SERVICE_EVENT_KEY, ShareConstants.VOICE_CMD_SERVICE_SEEK_HELP) - it.startService(seekHelp) + context.startService(seekHelp) } - } } \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/VoiceCmdService.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/VoiceCmdService.kt index ae1c6924c9..c7cd4e464b 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/VoiceCmdService.kt +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/VoiceCmdService.kt @@ -42,7 +42,7 @@ class VoiceCmdService:Service() { if (intent.getIntExtra(ShareConstants.VOICE_CMD_SERVICE_EVENT_KEY,0) == ShareConstants.VOICE_CMD_SERVICE_SEEK_HELP) { // 收到语音指令,准备上报求助 Logger.i(TAG, "收到语音指令,准备上报求助") - SeekHelpManager.seekHelp(this,seekListener) + SeekHelpManager.seekHelp(this,seekListener,false) } } return super.onStartCommand(intent, flags, startId) diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt index 43f0b79443..19142774ef 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt @@ -79,13 +79,16 @@ object SeekHelpManager { /** * 寻求帮助,是开始故障求助的入口 * 由于当前需求仅需要提供这一个方法,所以context的初始化放到了此方法,后面如果有增加,需要把这部分提出去 + * + * @param useLocalVoiceNotice 使用自己的语音播报,如果是从语音助手过来的请求,语音助手可能会走自己的播报,默认是使用自己的播报 */ - fun seekHelp(context: Context, seekHelpListener: ISeekHelpListener) { + fun seekHelp(context: Context, seekHelpListener: ISeekHelpListener,useLocalVoiceNotice:Boolean = true) { // context初始化 if (this.context == null) { this.context = context aiAssist = AIAssist.getInstance(context) } + isSeekHelp = ShareControl.getInstance(SeekHelpManager.context).mogoServiceApis.statusManagerApi.isSeekHelping Logger.d(TAG, "开始故障求助上报---${isSeekHelp}") seekListenerList.add(seekHelpListener) when { @@ -101,7 +104,13 @@ object SeekHelpManager { } else -> { // 没有异常情况,开始故障求助 - aiAssist?.speakTTSVoice(VOICE_WILL_SEEK_HELP, voiceCallback) + if(useLocalVoiceNotice) { + // 语音说完再请求,要不然可能请求的太快 + aiAssist?.speakTTSVoice(VOICE_WILL_SEEK_HELP, voiceCallback) + }else{ + Logger.d(TAG,"不使用本地语音播报,直接开始发起求助") + realSeekHelp() + } } } @@ -144,7 +153,8 @@ object SeekHelpManager { ShareControl.getInstance(context).mogoServiceApis.networkApi.create(ShareApiService::class.java, HttpConstant.getNetHost()).sendHelpSignal(param).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(object : SubscribeImpl(RequestOptions.create(context)) { override fun onSuccess(o: BaseData?) { super.onSuccess(o) - // todo 接口请求成功,需要同步v2x状态,通知adas,改变自车图标 + // 接口请求成功,内部同步v2x状态,通知adas,改变自车图标 + ShareControl.getInstance(context).mogoServiceApis.statusManagerApi.setSeekHelping("ShareDialog",true) isSeekHelp = true aiAssist?.speakTTSVoice("已发布求助信息,将为你通知其他车主") toast("已发布求助信息,将为你通知其他车主")