face regonition refine

This commit is contained in:
gcw_4spBpAfv
2026-03-10 15:40:05 +08:00
parent d5767156b9
commit ec1f7d2e72
1579 changed files with 4286 additions and 319 deletions

View File

@@ -0,0 +1,99 @@
package com.digitalperson.util
import android.content.Context
import android.location.LocationManager
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.Build
import java.text.SimpleDateFormat
import java.util.*
class SmartGreetingUtil(private val context: Context) {
// 中国主要节日(月,日)
private val festivals = mapOf(
Pair(1, 1) to "元旦",
Pair(2, 14) to "情人节",
Pair(3, 8) to "妇女节",
Pair(3, 12) to "植树节",
Pair(4, 1) to "愚人节",
Pair(5, 1) to "劳动节",
Pair(5, 4) to "青年节",
Pair(6, 1) to "儿童节",
Pair(7, 1) to "建党节",
Pair(8, 1) to "建军节",
Pair(9, 10) to "教师节",
Pair(10, 1) to "国庆节",
Pair(12, 25) to "圣诞节"
)
// 获取当前时间问候语
fun getTimeBasedGreeting(): String {
val hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY)
return when {
hour in 6..11 -> "早上好"
hour in 12..17 -> "下午好"
hour in 18..22 -> "晚上好"
else -> "夜深了"
}
}
// 检查今天是否是节日
fun isFestivalToday(): Pair<Boolean, String> {
val calendar = Calendar.getInstance()
val month = calendar.get(Calendar.MONTH) + 1 // 月份从0开始
val day = calendar.get(Calendar.DAY_OF_MONTH)
val festival = festivals[Pair(month, day)]
return Pair(festival != null, festival ?: "")
}
// 获取完整的问候语
fun getSmartGreeting(name: String?): String {
val (isFestival, festivalName) = isFestivalToday()
return if (isFestival) {
if (name.isNullOrBlank()) {
"小朋友好!今天是${festivalName},祝你${festivalName}快乐哦!"
} else {
"你好,${name}!今天是${festivalName},祝你${festivalName}快乐哦!"
}
} else {
val timeGreeting = getTimeBasedGreeting()
if (name.isNullOrBlank()) {
"${timeGreeting},很高兴见到你。请问你叫什么名字呀?"
} else {
"${timeGreeting}${name},很高兴见到你。"
}
}
}
// 检查网络连接
fun isNetworkConnected(): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val network = connectivityManager.activeNetwork ?: return false
val capabilities = connectivityManager.getNetworkCapabilities(network) ?: return false
return capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
} else {
val networkInfo = connectivityManager.activeNetworkInfo ?: return false
return networkInfo.isConnected
}
}
// 获取当前日期和时间
fun getCurrentDateTime(): String {
val sdf = SimpleDateFormat("yyyy年MM月dd日 HH:mm", Locale.CHINA)
return sdf.format(Date())
}
// 生成节日问候语提示词用于本地LLM
fun getFestivalGreetingPrompt(festivalName: String, name: String?): String {
val basePrompt = "今天是$festivalName,请生成一条适合小学生的节日问候语,语气活泼友好,简短亲切。"
return if (name.isNullOrBlank()) {
basePrompt
} else {
"$basePrompt 问候对象叫$name"
}
}
}