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