自动更新
This commit is contained in:
@@ -2,10 +2,13 @@ package com.example.initiateaphonecallapp
|
||||
|
||||
import android.Manifest
|
||||
import android.app.AlertDialog
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.Environment
|
||||
import android.util.Log
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
@@ -24,6 +27,11 @@ import com.example.initiateaphonecallapp.ui.LoginSms.LoginSmsScreen
|
||||
import com.example.initiateaphonecallapp.ui.MainScreen
|
||||
import com.example.initiateaphonecallapp.ui.login.LoginScreen
|
||||
import com.example.initiateaphonecallapp.ui.theme.InitiateAPhoneCallAppTheme
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import org.json.JSONObject
|
||||
import java.net.URL
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
private val requiredPermissions = arrayOf(
|
||||
@@ -52,6 +60,7 @@ class MainActivity : ComponentActivity() {
|
||||
private lateinit var storagePermissionManager: StoragePermissionManager
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
checkUpdate()
|
||||
CallRecordManager.initialize(this)
|
||||
println("🚀 Application: CallRecordManager 初始化完成")
|
||||
|
||||
@@ -131,6 +140,45 @@ class MainActivity : ComponentActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
fun checkUpdate() {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
// 1️⃣ 获取服务器版本信息
|
||||
val jsonString = URL("http://120.26.58.34/app/version.json").readText()
|
||||
// val jsonString = URL("http://121.43.240.248/app/version.json").readText()
|
||||
val json = JSONObject(jsonString)
|
||||
val serverVersionCode = json.getInt("version")
|
||||
val apkUrl = json.getString("apkUrl")
|
||||
|
||||
// 2️⃣ 获取本地版本
|
||||
val localVersionCode = 1
|
||||
|
||||
if (serverVersionCode > localVersionCode) {
|
||||
Log.d("Update", "检测到新版本: $serverVersionCode")
|
||||
runOnUiThread { promptDownloadApk(apkUrl) }
|
||||
} else {
|
||||
Log.d("Update", "已是最新版本")
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e("Update", "检查更新失败: ${e.message}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun promptDownloadApk(apkUrl: String) {
|
||||
AlertDialog.Builder(this)
|
||||
.setTitle("发现新版本")
|
||||
.setMessage("检测到新版本,是否下载并安装?")
|
||||
.setPositiveButton("下载") { _, _ ->
|
||||
// 打开浏览器下载
|
||||
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(apkUrl))
|
||||
startActivity(intent)
|
||||
}
|
||||
.setNegativeButton("取消", null)
|
||||
.setCancelable(false)
|
||||
.show()
|
||||
}
|
||||
|
||||
private fun hasAllPermissions(): Boolean {
|
||||
return requiredPermissions.all { permission ->
|
||||
ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.example.initiateaphonecallapp.ui.login
|
||||
|
||||
data class LoginState(
|
||||
val username: String = "sadmin",
|
||||
val password: String = "admin123",
|
||||
val username: String = "",
|
||||
val password: String = "",
|
||||
val isLoading: Boolean = false,
|
||||
val errorMessage: String = "",
|
||||
val isLoginSuccess: Boolean = false,
|
||||
|
||||
Reference in New Issue
Block a user