美文网首页
android跳转系统通知页面管理声音和振动

android跳转系统通知页面管理声音和振动

作者: 柒_世 | 来源:发表于2020-12-22 11:41 被阅读0次

android系统中通知栏的碎片化严重,各个厂商和版本的适配太繁琐。
这里参考微信创建好应用的通知渠道,直接跳转系统通知设置页面,用户自己设置

ps:厂商不同可能跳转的intentAction会有差异,这里只测试了华为和小米的

/**
     * 跳转到通知管理
     *
     * @param channelId 通知渠道ID
     */
    public static void enterNotificationSetting(Context context, String channelId) {
        String packageName = context.getPackageName();
        try {
            // 根据通知栏开启权限判断结果,判断是否需要提醒用户跳转系统通知管理页面
            Intent intent = new Intent();
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                String intentAction = QMUIDeviceHelper.isMIUI() ? Settings.ACTION_APP_NOTIFICATION_SETTINGS : Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS;
                intent.setAction(intentAction);
                //这种方案适用于 API 26, 即8.0(含8.0)以上可以用
                intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName);
                intent.putExtra(Settings.EXTRA_CHANNEL_ID, channelId);
            }

            //这种方案适用于 API21——25,即 5.0——7.1 之间的版本可以使用
            intent.putExtra("app_package", packageName);
            intent.putExtra("app_uid", channelId);
            context.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
            // 出现异常则跳转到应用设置界面
            Intent intent = new Intent();
            intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
            Uri uri = Uri.fromParts("package", packageName, null);
            intent.setData(uri);
            context.startActivity(intent);
        }
    }

相关文章

网友评论

      本文标题:android跳转系统通知页面管理声音和振动

      本文链接:https://www.haomeiwen.com/subject/dbzjnktx.html