[3.2.0][Fix]解决首次安装Tts不播报的问题

原因:
先分发数据且没缓存,而后才去监听,没有收到sn相关的事件
This commit is contained in:
chenfufeng
2023-05-24 17:02:31 +08:00
parent db7a48302b
commit beacde1fed
4 changed files with 22 additions and 4 deletions

View File

@@ -1,6 +1,7 @@
package com.zhjt.mogo_core_function_devatools.tts package com.zhjt.mogo_core_function_devatools.tts
import android.content.Context import android.content.Context
import android.util.Log
import com.mogo.commons.AbsMogoApplication import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.voice.AIAssist import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
@@ -26,7 +27,7 @@ class TtsManager : IMoGoCloudListener {
} }
override fun tokenGot(token: String, sn: String) { override fun tokenGot(token: String, sn: String) {
CallerLogger.d(TAG, "网络获取到sn为:${sn}准备重新初始化Tts") Log.d(TAG, "网络获取到sn为:${sn}准备重新初始化Tts")
ThreadUtils.runOnUiThread({ ThreadUtils.runOnUiThread({
AIAssist.getInstance(AbsMogoApplication.getApp()).initTtsAgain(sn) AIAssist.getInstance(AbsMogoApplication.getApp()).initTtsAgain(sn)
}, ThreadUtils.MODE.QUEUE) }, ThreadUtils.MODE.QUEUE)

View File

@@ -6,10 +6,25 @@ import com.mogo.eagle.core.function.call.base.CallerBase
object CallerCloudListenerManager : CallerBase<IMoGoCloudListener>() { object CallerCloudListenerManager : CallerBase<IMoGoCloudListener>() {
@Volatile
private var token: String? = null
@Volatile
private var sn: String? = null
override fun doSomeAfterAddListener(tag: String, listener: IMoGoCloudListener) {
super.doSomeAfterAddListener(tag, listener)
if (!token.isNullOrEmpty() && !sn.isNullOrEmpty()) {
listener.tokenGot(token!!, sn!!)
}
}
/** /**
* 分发获取到的设备sn * 分发获取到的设备sn
*/ */
fun invokeCloudTokenGot(token: String, sn: String) { fun invokeCloudTokenGot(token: String, sn: String) {
this.token = token
this.sn = sn
M_LISTENERS.forEach { M_LISTENERS.forEach {
val listener = it.value val listener = it.value
listener.tokenGot(token, sn) listener.tokenGot(token, sn)

View File

@@ -1,6 +1,7 @@
package com.mogo.commons.voice; package com.mogo.commons.voice;
import android.content.Context; import android.content.Context;
import android.util.Log;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils;
@@ -82,11 +83,11 @@ public class AIAssist {
* 重新初始化Tts(首次sn获取比较慢而TTS初始化比较早会拿不到授权) * 重新初始化Tts(首次sn获取比较慢而TTS初始化比较早会拿不到授权)
*/ */
public void initTtsAgain(String sn) { public void initTtsAgain(String sn) {
CallerLogger.INSTANCE.d(TAG, "网络获取SN后重新初始化Tts!"); Log.d(TAG, "网络获取SN后重新初始化Tts!");
if (mTTS != null) { if (mTTS != null) {
mTTS.initTts(sn); mTTS.initTts(sn);
} else { } else {
CallerLogger.INSTANCE.d(TAG, "TTS对象创建失败!"); Log.d(TAG, "TTS对象创建失败!");
} }
} }

View File

@@ -8,6 +8,7 @@ import android.os.Build;
import android.os.Environment; import android.os.Environment;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.util.Pair; import android.util.Pair;
import androidx.annotation.MainThread; import androidx.annotation.MainThread;
@@ -134,7 +135,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
if (!mHasAuth && sn != null && !sn.isEmpty() && !isAuthing) { if (!mHasAuth && sn != null && !sn.isEmpty() && !isAuthing) {
initTtsConfig(sn); initTtsConfig(sn);
} else { } else {
CallerLogger.INSTANCE.d(TAG, "不满足Tts初始化条件!" + mHasAuth + "," + sn + "," + isAuthing); Log.d(TAG, "不满足Tts初始化条件!" + mHasAuth + "," + sn + "," + isAuthing);
} }
} }