Android Studio POST_NOTIFICATIONS请求不起作用,对话框未显示

yshpjwxd  于 12个月前  发布在  Android
关注(0)|答案(2)|浏览(292)

在清单中:

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

字符串
活动中:

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


在build.gradle文件中,targetSdkVersion为34
我还有其他权限请求,如相机、位置和麦克风,所有这些都可以正常工作,但POST NOTIFICATIONS请求不行。请求用户允许它的对话框没有出现。
只有当我在设置->应用程序->权限->允许权限中手动激活它们时,通知才会起作用
不知道是什么问题!哦,我知道这个android开发人员资源

1yjd4xko

1yjd4xko1#

我试过你的代码,它对我来说很好:
有几件事你可以重新检查:
1.确保您使用的模拟器/设备高于33
1.你的清单应该是android的。清单
您还可以在此answer中查看更多信息

r9f1avp5

r9f1avp52#

我通过将Manifest.permission.POST_NOTIFICATIONS与其他文件进行分组来实现它:

private void checkAllPermissions() {
    int Permission_All = 1;
    String[] Permissions = {Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, 
            Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, 
            Manifest.permission.RECORD_AUDIO, Manifest.permission.INTERNET, Manifest.permission.FOREGROUND_SERVICE,
            Manifest.permission.WAKE_LOCK, Manifest.permission.DISABLE_KEYGUARD, 
            Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.POST_NOTIFICATIONS};
    if (!hasPermissions(this, Permissions)) {
        ActivityCompat.requestPermissions(this,Permissions, Permission_All);
    }
}

    public static boolean hasPermissions(Context context, String... permissions) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
        for (String permission : permissions) {
            if (ActivityCompat.checkSelfPermission(context,permission) != PackageManager.PERMISSION_GRANTED) {
                return false;
            }
        }
    }
    return true;
}

字符串
上面的代码可以用!!但是不知道为什么在前面的独立代码中没有。我甚至添加了吐司和日志行来检查是否满足IF条件,除了它没有请求POST_NOTIFICATION权限之外,一切似乎都很好。

相关问题