From 38b7687559b453654662d7bebbe838b02086fcf2 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 18 四月 2025 10:17:28 +0800
Subject: [PATCH] fix: 消息通知

---
 app/src/main/java/com/example/firstapp/activity/SettingActivity.kt |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt b/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt
index f20a9c1..1d2bca2 100644
--- a/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt
+++ b/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt
@@ -10,6 +10,12 @@
 import android.widget.Button
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.lifecycleScope
+import android.os.Build
+import android.Manifest
+import android.content.Context
+import android.content.pm.PackageManager
+import androidx.activity.result.contract.ActivityResultContracts
+import androidx.core.content.ContextCompat
 
 import com.example.firstapp.databinding.ActivitySettingBinding
 import com.example.firstapp.R
@@ -30,6 +36,26 @@
         ViewModelProvider(this).get(HomeViewModel::class.java)
     }
     private var isFullscreen: Boolean = false
+    
+    // 添加通知权限请求
+    private val notificationPermissionRequest = 
+        registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
+            if (isGranted) {
+                // 权限已授予,可以发送通知
+                AlertDialog.Builder(this)
+                    .setTitle("通知权限")
+                    .setMessage("通知权限已开启,您将能收到重要提醒")
+                    .setPositiveButton("确定", null)
+                    .show()
+            } else {
+                // 权限被拒绝
+                AlertDialog.Builder(this)
+                    .setTitle("通知权限")
+                    .setMessage("通知权限被拒绝,应用将无法发送提醒通知。您可以在系统设置中手动开启权限。")
+                    .setPositiveButton("确定", null)
+                    .show()
+            }
+        }
 
     @SuppressLint("ClickableViewAccessibility")
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -65,6 +91,8 @@
 //        })
 
 
+        // 通知权限
+        setupNotificationPermission()
         // 退出登录
         logout()
         // 账号注销
@@ -76,6 +104,35 @@
 
     }
 
+    private fun setupNotificationPermission() {
+        binding.notificationPermission.setOnClickListener {
+            // 请求通知权限(在Android 13及以上需要)
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+                if (ContextCompat.checkSelfPermission(
+                        this, 
+                        Manifest.permission.POST_NOTIFICATIONS
+                    ) != PackageManager.PERMISSION_GRANTED
+                ) {
+                    notificationPermissionRequest.launch(Manifest.permission.POST_NOTIFICATIONS)
+                } else {
+                    // 已经有权限
+                    AlertDialog.Builder(this)
+                        .setTitle("通知权限")
+                        .setMessage("您已经开启了通知权限")
+                        .setPositiveButton("确定", null)
+                        .show()
+                }
+            } else {
+                // Android 13以下版本不需要请求权限
+                AlertDialog.Builder(this)
+                    .setTitle("通知权限")
+                    .setMessage("当前系统版本无需单独请求通知权限")
+                    .setPositiveButton("确定", null)
+                    .show()
+            }
+        }
+    }
+
     private fun aboutCompany(){
 
         binding.aboutCompany.setOnClickListener {

--
Gitblit v1.9.3