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

ia2d9nvy  于 2022-12-31  发布在  Android
关注(0)|答案(3)|浏览(1664)

我已经浏览了android 13推送通知指南
https://developer.android.com/about/versions/13/changes/notification-permission#user-choice
我已经看过请求权限的指南
https://developer.android.com/training/permissions/requesting#java
我已经更新了我的编译和目标到API。
这是我到目前为止的代码(正在进行中)。现在我只是想让通知提示显示出来。

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
推送通知的正确清单权限是什么?

ukxgm1gy

ukxgm1gy1#

我知道,也许我来得有点晚...但我希望这至少能帮助到其他人。您需要在模块级别的Gradle文件中使用 compileSdkVersion 33。然后,您将可以使用POST_NOTIFICATIONS权限,而不会出现任何问题。

uxhixvfz

uxhixvfz2#

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

因此,您需要将此权限添加到AndroidManifest.xml

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

57hvy0tb3#

您需要执行几个步骤,在清单中添加发布通知权限

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

然后在你的控制器中,对于运行时权限,我们通常会问:

if (Build.VERSION.SDK_INT >= 33) {
   if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
       ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.POST_NOTIFICATIONS},101);
       }
   else {
          createChannel();
        }
      }

然后需要照常处理权限结果

相关问题