Push——推送——Android通知渠道 通知权限设置 自启动权限设置 Android其他权限 存储权限申请

通知渠道是Android 8.0之后开始的概念。所有的通知都必须分配到相应的渠道,每个渠道,我们可以设置相应的视觉与听觉行为,即可以自定义相关铃声。

通知权限Android13适配

Android13 将通知权限改为了运行时权限,基于此,需要对PushSDK做android13.0的适配。

应用无通知权限的表现

Android13手机,没有配置通知权限可能出现的问题

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

Push——推送——Android通知渠道 通知权限设置 自启动权限设置 Android其他权限 存储权限申请_第1张图片
配置通知权限后,可以打开通知权限了
Push——推送——Android通知渠道 通知权限设置 自启动权限设置 Android其他权限 存储权限申请_第2张图片

Android13手机上安装不同版本表现

Android13 最佳实践

相关技术背景

检测授权接口。
ContextCompat.checkSelfPermission(权限),Android系统API接口

是否需要显示权限解释接口。
shouldShowRequestPermissionRationale(权限),Android系统API接口

请求权限接口。
requestPermissions(权限),Android系统API接口
弹出系统弹窗。

通知权限设置

Api 26

API 26也就是Android8.0之后可以使用Setting中的此个action实现页面的跳转。
ACTION_APP_NOTIFICATION_SETTINGS
Android8.0以后,常量 ACTION_APP_NOTIFICATION_SETTINGS 对应的值为:

    public static final String ACTION_APP_NOTIFICATION_SETTINGS
            = "android.settings.APP_NOTIFICATION_SETTINGS";

实现如下:

Intent intent = new Intent();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
    intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName);
    intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
    mContext.startActivity(intent);
    notificationSetting = 0;
}

Push——推送——Android通知渠道 通知权限设置 自启动权限设置 Android其他权限 存储权限申请_第3张图片

自启动权限

背景

自启动页面在不同渠道不统一,没有统一的跳转界面。
以红米K50为例,自启动页面的开关在应用信息页上:
Push——推送——Android通知渠道 通知权限设置 自启动权限设置 Android其他权限 存储权限申请_第4张图片
以OPPO Find2为例,OPPO的自启动页面在应用信息-耗电管理界面:
Push——推送——Android通知渠道 通知权限设置 自启动权限设置 Android其他权限 存储权限申请_第5张图片

思考

注意:如果您以 Android 8.0(API 级别 26)为目标平台,并在未指定通知渠道的情况下发布了一条通知,则该通知不会显示且系统会记录错误。
如果SDK target 编译的版本是大于等于26的,某些厂商不支持自定义通知渠道,这种情况下是否会导致通知不显示?

铃声下载地址:
铃声下载地址

小米推送地址:
小米推送 自定义推送铃声 4.1章节 4.5章节
华为推送
自定义推送铃声 4.1章节
OPPO、VIVO、魅族不支持自定义铃声

本地推送

git地址:
https://gitee.com/my739168148/local-push.git

你可能感兴趣的:(android,java,android,java)