添加版本更新接口

This commit is contained in:
林若思 2026-01-04 16:49:06 +08:00
parent a01fe653c6
commit b6cd162280
5 changed files with 52 additions and 4 deletions

View File

@ -11,7 +11,7 @@ data class UserInfoResp(
val avatar: String, val avatar: String,
val gender: Int = 0, val gender: Int = 0,
val age: Int = 0, val age: Int = 0,
val wakeUpAudioUrl: String = "", val wakeUpAudioUrl: String,
val endAudioUrl: String = "", val endAudioUrl: String,
val sn: String = "" val sn: String = ""
) )

View File

@ -0,0 +1,9 @@
package com.zs.smarthuman.bean
/**
* @author lrs
* @date 2025/4/30 19:58
* @description 获取后台存放最新apk版本信息 isForceUpdate:1强制更新 0非强制更新
*/
data class VersionUpdateResp(val versionName: String = "", val versionCode: Int = 0, val updateLog: String = "",
val downloadUrl: String = "", val isForceUpdate: Int = 1)

View File

@ -13,7 +13,8 @@ class ApiService {
const val GET_USER_INFO_URL = "iot/info/getUserInfo" const val GET_USER_INFO_URL = "iot/info/getUserInfo"
const val UPLOAD_RECORD_VOICE_URL = "iot/chat"
const val UPLOAD_RECORD_VOICE_URL = "/iot/chat" const val VERSION_UPDATE_URL = "iot/info/getLatestVersion"
} }
} }

View File

@ -13,6 +13,7 @@ import android.media.audiofx.AcousticEchoCanceler
import android.os.Bundle import android.os.Bundle
import android.os.Environment import android.os.Environment
import android.os.IBinder import android.os.IBinder
import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import android.widget.Toast import android.widget.Toast
@ -25,15 +26,18 @@ import com.blankj.utilcode.util.FileUtils
import com.blankj.utilcode.util.GsonUtils import com.blankj.utilcode.util.GsonUtils
import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.PermissionUtils import com.blankj.utilcode.util.PermissionUtils
import com.blankj.utilcode.util.SPUtils
import com.blankj.utilcode.util.ScreenUtils import com.blankj.utilcode.util.ScreenUtils
import com.blankj.utilcode.util.ToastUtils import com.blankj.utilcode.util.ToastUtils
import com.zs.smarthuman.App import com.zs.smarthuman.App
import com.zs.smarthuman.App.Companion.getInstance import com.zs.smarthuman.App.Companion.getInstance
import com.zs.smarthuman.BuildConfig
import com.zs.smarthuman.R import com.zs.smarthuman.R
import com.zs.smarthuman.base.BaseActivity import com.zs.smarthuman.base.BaseActivity
import com.zs.smarthuman.base.BaseViewModelActivity import com.zs.smarthuman.base.BaseViewModelActivity
import com.zs.smarthuman.bean.NetworkStatusEventMsg import com.zs.smarthuman.bean.NetworkStatusEventMsg
import com.zs.smarthuman.bean.UserInfoResp import com.zs.smarthuman.bean.UserInfoResp
import com.zs.smarthuman.bean.VersionUpdateResp
import com.zs.smarthuman.bean.VoiceBeanResp import com.zs.smarthuman.bean.VoiceBeanResp
import com.zs.smarthuman.common.UserInfoManager import com.zs.smarthuman.common.UserInfoManager
import com.zs.smarthuman.databinding.ActivityMainBinding import com.zs.smarthuman.databinding.ActivityMainBinding
@ -68,8 +72,10 @@ import rxhttp.wrapper.param.toAwaitResponse
import java.io.File import java.io.File
import java.nio.ByteBuffer import java.nio.ByteBuffer
import java.nio.ByteOrder import java.nio.ByteOrder
import kotlin.compareTo
import kotlin.concurrent.thread import kotlin.concurrent.thread
import kotlin.math.sqrt import kotlin.math.sqrt
import kotlin.text.compareTo
/** /**
* @description: * @description:
@ -117,6 +123,7 @@ class MainActivity : BaseViewModelActivity<ActivityMainBinding, MainViewModel>()
requestUserInfo() requestUserInfo()
versionUpdate()
initObserver() initObserver()
} }
@ -124,6 +131,10 @@ class MainActivity : BaseViewModelActivity<ActivityMainBinding, MainViewModel>()
mViewModel?.getUserInfo() mViewModel?.getUserInfo()
} }
private fun versionUpdate(){
mViewModel?.versionUpdate()
}
private fun initObserver() { private fun initObserver() {
mViewModel?.userInfoLiveData?.observe(this) { mViewModel?.userInfoLiveData?.observe(this) {
when (it) { when (it) {
@ -150,6 +161,20 @@ class MainActivity : BaseViewModelActivity<ActivityMainBinding, MainViewModel>()
} }
} }
} }
mViewModel?.versionUpdateLiveData?.observe(this){
when(it){
is ApiResult.Error -> {}
is ApiResult.Success<VersionUpdateResp> -> {
if (it.data.versionCode > BuildConfig.VERSION_CODE)
{//有新版本
}
}
}
}
} }
private fun initVoiceController() { private fun initVoiceController() {
@ -196,7 +221,7 @@ class MainActivity : BaseViewModelActivity<ActivityMainBinding, MainViewModel>()
voiceInfo = mutableListOf<VoiceBeanResp>().apply { voiceInfo = mutableListOf<VoiceBeanResp>().apply {
add( add(
VoiceBeanResp( VoiceBeanResp(
audioUrl = UserInfoManager.userInfo?.endAudioUrl ?: "https://static.seerteach.net/aidialogue/userWakeUpAudio/ttsmaker-file-2025-12-31-16-2-51.mp3" audioUrl = /*UserInfoManager.userInfo?.endAudioUrl ?: */"https://static.seerteach.net/aidialogue/userWakeUpAudio/ttsmaker-file-2025-12-31-16-2-51.mp3"
) )
) )
} }

View File

@ -5,6 +5,7 @@ import com.blankj.utilcode.util.ToastUtils
import com.zs.smarthuman.base.BaseViewModel import com.zs.smarthuman.base.BaseViewModel
import com.zs.smarthuman.bean.QRCodeResp import com.zs.smarthuman.bean.QRCodeResp
import com.zs.smarthuman.bean.UserInfoResp import com.zs.smarthuman.bean.UserInfoResp
import com.zs.smarthuman.bean.VersionUpdateResp
import com.zs.smarthuman.bean.VoiceBeanResp import com.zs.smarthuman.bean.VoiceBeanResp
import com.zs.smarthuman.http.ApiLiveData import com.zs.smarthuman.http.ApiLiveData
import com.zs.smarthuman.http.ApiResult import com.zs.smarthuman.http.ApiResult
@ -46,4 +47,16 @@ class MainViewModel: BaseViewModel() {
} }
} }
private val _versionUpdateLiveData = ApiLiveData<VersionUpdateResp>()
val versionUpdateLiveData: LiveData<ApiResult<VersionUpdateResp>> = _versionUpdateLiveData
fun versionUpdate() {
_versionUpdateLiveData.request {
RxHttp.get(ApiService.VERSION_UPDATE_URL)
.toAwaitResponse<VersionUpdateResp>()
.awaitResult()
.getOrThrow()
}
}
} }