如何请求 android 13 的推送通知权限?

我浏览了本指南以了解 android 13 推送通知

https://developer.android.com/about/versions/13/changes/notification-permission#user-choice

我查看了请求权限的指南

https://developer.android.com/training/permissions/requesting#java

我已经将我的编译和目标更新为 api 32。

这是我到目前为止的代码(正在进行中)。现在我只是想让通知提示出现。

        if (Build.VERSION.SDK_INT >= 32) {
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NOTIFICATION_POLICY) == PackageManager.PERMISSION_GRANTED)
                return;
            ActivityResultLauncher<String> launcher = registerForActivityResult(
                    new ActivityResultContracts.RequestPermission(), isGranted -> {

                    }
            );
            launcher.launch(Manifest.permission.POST_NOTIFICATIONS);
        }

我遇到的问题是我收到一个错误 cannot find symbol variable POST_NOTIFICATIONS

推送通知的正确清单权限是什么?

stack overflow How do I request push notification permissions for android 13?
原文答案
author avatar

接受的答案

也许我参加聚会有点晚了,我知道......但我希望这至少可以帮助其他人。您需要在模块级别的 gradle 文件中使用 compileSdkVersion 33 。然后,您将可以毫无问题地使用 POST_NOTIFICATIONS 权限。 Gradle settings


答案:

作者头像

Android 13(API 级别 33)及更高版本支持从应用发送非豁免(包括前台服务 (FGS))通知的运行时权限:POST_NOTIFICATIONS。此更改可帮助用户专注于对他们最重要的通知。

reference here

所以你需要把这个权限添加到AndroidManifest.xml

<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>