From 1a281d8354622a3606360f9f9a7fe4bb7d6a2c3a Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期日, 27 四月 2025 13:22:26 +0800
Subject: [PATCH] fix 短信
---
app/src/main/java/com/example/firstapp/App.kt | 127 +++++++++++++++++++++++-------------------
1 files changed, 69 insertions(+), 58 deletions(-)
diff --git a/app/src/main/java/com/example/firstapp/App.kt b/app/src/main/java/com/example/firstapp/App.kt
index 6663556..d672f03 100644
--- a/app/src/main/java/com/example/firstapp/App.kt
+++ b/app/src/main/java/com/example/firstapp/App.kt
@@ -3,24 +3,15 @@
import android.annotation.SuppressLint
import android.app.Application
import android.app.PendingIntent
-import android.bluetooth.BluetoothAdapter
-import android.bluetooth.BluetoothDevice
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.location.Geocoder
-import android.net.ConnectivityManager
-import android.net.wifi.WifiManager
import android.os.Build
+import androidx.annotation.NonNull
import androidx.lifecycle.MutableLiveData
import androidx.multidex.MultiDex
-import androidx.work.Configuration
-import androidx.work.WorkManager
-import com.gyf.cactus.Cactus
-import com.gyf.cactus.callback.CactusCallback
-import com.gyf.cactus.ext.cactus
-import com.hjq.language.MultiLanguages
-import com.hjq.language.OnLanguageListener
+import androidx.work.*
import com.example.firstapp.core.Core
import com.example.firstapp.database.repository.CodeRepository
import com.example.firstapp.database.repository.KeywordRepository
@@ -28,27 +19,17 @@
import com.example.firstapp.database.repository.ReminderRepository
import com.example.firstapp.database.service.RetrofitClient
import com.example.firstapp.receiver.CactusReceiver
-import com.example.firstapp.service.BluetoothScanService
-import com.example.firstapp.service.HttpServerService
-import com.example.firstapp.utils.ACTION_START
-import com.example.firstapp.utils.AppInfo
-import com.example.firstapp.utils.CactusSave
-import com.example.firstapp.utils.FRONT_CHANNEL_ID
-import com.example.firstapp.utils.FRONT_CHANNEL_NAME
-import com.example.firstapp.utils.FRONT_NOTIFY_ID
-import com.example.firstapp.utils.FRPC_LIB_VERSION
-import com.example.firstapp.utils.HistoryUtils
-import com.example.firstapp.utils.Log
-import com.example.firstapp.utils.SettingUtils
-import com.example.firstapp.utils.SharedPreference
-
+import com.example.firstapp.service.ReminderWorker
+import com.example.firstapp.utils.*
import com.example.firstapp.utils.tinker.TinkerLoadLibrary
+import com.gyf.cactus.Cactus
+import com.gyf.cactus.callback.CactusCallback
+import com.gyf.cactus.ext.cactus
+import com.hjq.language.MultiLanguages
import com.king.location.LocationClient
import com.xuexiang.xutil.file.FileUtils
import frpclib.Frpclib
-import io.reactivex.Observable
import io.reactivex.disposables.Disposable
-import io.reactivex.schedulers.Schedulers
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.SupervisorJob
import java.io.BufferedWriter
@@ -56,20 +37,18 @@
import java.io.FileWriter
import java.io.IOException
import java.text.SimpleDateFormat
-import java.util.Date
-import java.util.Locale
-import java.util.TimeZone
+import java.util.*
import java.util.concurrent.TimeUnit
@Suppress("DEPRECATION")
-class App : Application(), CactusCallback, Configuration.Provider by Core {
+class App : Application(), CactusCallback, Configuration.Provider {
val applicationScope = CoroutineScope(SupervisorJob())
val database by lazy { AppDatabase.getInstance(this) }
val msgRepository by lazy { MsgRepository(database.msgDao()) }
val codeRepository by lazy { CodeRepository(database.codeDao()) }
- val reminderRepository by lazy { ReminderRepository(database.reminderDao()) }
val keywordRepository by lazy { KeywordRepository(RetrofitClient.apiService,database.keywordDao()) }
+ val reminderRepository by lazy { ReminderRepository(this) }
companion object {
const val TAG: String = "SmsForwarder"
@@ -147,19 +126,29 @@
} catch (ex: IOException) {
ex.printStackTrace()
}
- //使用默认的处理方式让APP停止运行
defaultHandler?.uncaughtException(thread, throwable)
}
try {
context = applicationContext
initLibs()
+ PreferencesManager.init(this)
+ // 初始化RetrofitClient
+ RetrofitClient.init(this)
- //纯客户端模式
- if (SettingUtils.enablePureClientMode) return
+ try {
+ if (SettingUtils.enablePureClientMode) return
+ } catch (e: Exception) {
+ // 捕获SettingUtils未初始化的异常
+ Log.e(TAG, "SettingUtils未初始化: ${e.message}")
+ // 继续执行后续代码,不返回
+ }
- //初始化WorkManager
- WorkManager.initialize(this, Configuration.Builder().build())
+ // 初始化WorkManager
+ WorkManager.initialize(this, getWorkManagerConfiguration())
+
+ // 设置定时检查提醒的WorkManager
+ setupReminderWorker()
//动态加载FrpcLib
val libPath = filesDir.absolutePath + "/libs"
@@ -295,6 +284,13 @@
}
}
+ @NonNull
+ override fun getWorkManagerConfiguration(): Configuration {
+ return Configuration.Builder()
+ .setMinimumLoggingLevel(android.util.Log.DEBUG)
+ .build()
+ }
+
/**
* 初始化基础库
*/
@@ -302,39 +298,39 @@
Core.init(this)
Log.init(applicationContext)
// 配置文件初始化
- /* SharedPreference.init(applicationContext)
+ SharedPreference.init(applicationContext)
// X系列基础库初始化
// XBasicLibInit.init(this)
// 初始化日志打印
isDebug = SettingUtils.enableDebugMode
Log.init(applicationContext)
// 转发历史工具类初始化
- HistoryUtils.init(applicationContext)
+// HistoryUtils.init(applicationContext)
// 版本更新初始化
// XUpdateInit.init(this)
// 运营统计数据
// UMengInit.init(this)
// 初始化语种切换框架
- MultiLanguages.init(this)
+// MultiLanguages.init(this)
// 设置语种变化监听器
- MultiLanguages.setOnLanguageListener(object : OnLanguageListener {
- override fun onAppLocaleChange(oldLocale: Locale, newLocale: Locale) {
- // 注意:只有setAppLanguage时触发,clearAppLanguage时不触发
- Log.i(TAG, "监听到应用切换了语种,旧语种:$oldLocale,新语种:$newLocale")
- switchLanguage(newLocale)
- }
-
- override fun onSystemLocaleChange(oldLocale: Locale, newLocale: Locale) {
- Log.i(TAG, "监听到系统切换了语种,旧语种:$oldLocale,新语种:$newLocale")
- switchLanguage(newLocale)
- *//*val isFlowSystem = SettingUtils.isFlowSystemLanguage //MultiLanguages.isSystemLanguage(context)取值不对,一直是false
- Log.i(TAG, "监听到系统切换了语种,旧语种:$oldLocale,新语种:$newLocale,是否跟随系统:$isFlowSystem")
- if (isFlowSystem) {
- CommonUtils.switchLanguage(oldLocale, newLocale)
- }*//*
- }
- })
- switchLanguage(MultiLanguages.getAppLanguage(this))*/
+// MultiLanguages.setOnLanguageListener(object : OnLanguageListener {
+// override fun onAppLocaleChange(oldLocale: Locale, newLocale: Locale) {
+// // 注意:只有setAppLanguage时触发,clearAppLanguage时不触发
+// Log.i(TAG, "监听到应用切换了语种,旧语种:$oldLocale,新语种:$newLocale")
+// switchLanguage(newLocale)
+// }
+//
+// override fun onSystemLocaleChange(oldLocale: Locale, newLocale: Locale) {
+// Log.i(TAG, "监听到系统切换了语种,旧语种:$oldLocale,新语种:$newLocale")
+// switchLanguage(newLocale)
+// *//*val isFlowSystem = SettingUtils.isFlowSystemLanguage //MultiLanguages.isSystemLanguage(context)取值不对,一直是false
+// Log.i(TAG, "监听到系统切换了语种,旧语种:$oldLocale,新语种:$newLocale,是否跟随系统:$isFlowSystem")
+// if (isFlowSystem) {
+// CommonUtils.switchLanguage(oldLocale, newLocale)
+// }*//*
+// }
+// })
+// switchLanguage(MultiLanguages.getAppLanguage(this))
}
@SuppressLint("CheckResult")
@@ -457,4 +453,19 @@
// )
// }
+ /**
+ * 设置定时提醒Worker
+ * 配置为每天运行一次检查是否有新的提醒内容
+ */
+ fun setupReminderWorker() {
+ Log.d(TAG, "设置定时提醒Worker")
+
+ // 仅在特定时间执行(每天指定时间)
+ // 可根据需要设置多个不同时间点的提醒
+ //ReminderWorker.setupScheduledWorker(this, 9, 50) // 上午9:00
+ ReminderWorker.setupScheduledWorker(this, 10, 50) // 下午13:50
+
+ // 不再使用周期性轮询和立即执行的方式
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.3