From 9755d9eefb12f95fa45c785e526038e10c9c7115 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期五, 25 四月 2025 18:15:51 +0800 Subject: [PATCH] 短信fix --- app/src/main/java/com/example/firstapp/MainActivity.kt | 49 ++++++++++++++++++++++--------------------------- 1 files changed, 22 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/MainActivity.kt b/app/src/main/java/com/example/firstapp/MainActivity.kt index 5dced23..f0be7b9 100644 --- a/app/src/main/java/com/example/firstapp/MainActivity.kt +++ b/app/src/main/java/com/example/firstapp/MainActivity.kt @@ -65,9 +65,9 @@ } } } - + // 通知权限请求 - private val notificationPermissionRequest = + private val notificationPermissionRequest = registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted -> if (isGranted) { // 权限已授予 @@ -97,25 +97,25 @@ // 重置提醒计划并检查是否有错过的提醒 resetReminders() - + // 开始权限请求流程 startPermissionsFlow() } override fun onResume() { super.onResume() - + // 每次恢复活动时检查短信权限 checkAndHandleSmsPermissions(showDialog = false) } - + // 权限请求主流程 private fun startPermissionsFlow() { // 先请求通知权限,再请求短信权限 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // Android 13+ 需要通知权限 if (ContextCompat.checkSelfPermission( - this, + this, Manifest.permission.POST_NOTIFICATIONS ) != PackageManager.PERMISSION_GRANTED ) { @@ -129,7 +129,7 @@ requestSmsPermissions() } } - + // 请求短信权限 private fun requestSmsPermissions() { if (!hasSmsPermissions()) { @@ -148,7 +148,7 @@ } } } - + // 检查并处理短信权限(可选是否显示对话框) private fun checkAndHandleSmsPermissions(showDialog: Boolean = true) { if (!hasSmsPermissions()) { @@ -162,17 +162,17 @@ } } } - + // 检查是否有短信权限 private fun hasSmsPermissions(): Boolean { return ContextCompat.checkSelfPermission( this, Manifest.permission.RECEIVE_SMS - ) == PackageManager.PERMISSION_GRANTED && - ContextCompat.checkSelfPermission( - this, Manifest.permission.READ_SMS - ) == PackageManager.PERMISSION_GRANTED + ) == PackageManager.PERMISSION_GRANTED && + ContextCompat.checkSelfPermission( + this, Manifest.permission.READ_SMS + ) == PackageManager.PERMISSION_GRANTED } - + // 显示短信权限解释对话框 private fun showSmsPermissionExplanationDialog() { AlertDialog.Builder(this) @@ -188,13 +188,13 @@ .setCancelable(false) .show() } - + // 提供给外部调用的请求通知权限方法 fun requestNotificationPermission() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // 判断是否已经有通知权限 if (ContextCompat.checkSelfPermission( - this, + this, Manifest.permission.POST_NOTIFICATIONS ) != PackageManager.PERMISSION_GRANTED ) { @@ -211,7 +211,7 @@ private fun registerSmsReceiver() { // 确保不重复注册 if (smsReceiver != null) return - + Log.d("SMS_DEBUG", "MainActivity注册短信接收器") smsReceiver = SmsReceiver() val filter = IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION) @@ -304,8 +304,7 @@ company = response.data.details.company, pickupCode = response.data.details.pickupCode, address = response.data.details.address, - time = response.data.details.time, - smsTimestamp = datetime // 添加短信时间戳 + time = response.data.details.time ) CodeUtils.saveCode(code) } @@ -320,8 +319,7 @@ date = response.data.details.date, address = response.data.details.address, minAmount = response.data.details.min_amount, - number = response.data.details.number, - smsTimestamp = datetime // 添加短信时间戳 + number = response.data.details.number ) CodeUtils.saveCode(code) } @@ -334,8 +332,7 @@ amount = response.data.details.amount, datetime = response.data.details.datetime, address = response.data.details.address, - balance = response.data.details.balance, - smsTimestamp = datetime // 添加短信时间戳 + balance = response.data.details.balance ) CodeUtils.saveCode(code) } @@ -349,8 +346,7 @@ end = response.data.details.end, seat = response.data.details.seat, time = response.data.details.time, - address = response.data.details.address, - smsTimestamp = datetime // 添加短信时间戳 + address = response.data.details.address ) CodeUtils.saveCode(code) } @@ -363,8 +359,7 @@ seat = response.data.details.seat, time = response.data.details.time, address = response.data.details.address, - trips = response.data.details.trips, - smsTimestamp = datetime // 添加短信时间戳 + trips = response.data.details.trips ) CodeUtils.saveCode(code) } -- Gitblit v1.9.3