意图从我的应用程序打开通知通道设置

问题描述 投票:4回答:2

我需要发送什么意图来打开我之前在我的应用中创建的通知频道的设置?我需要它来链接我的设置活动。

android android-notifications android-8.0-oreo notification-channel
2个回答
17
投票

要打开单个通道的设置,您可以使用ACTION_CHANNEL_NOTIFICATION_SETTINGS

Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)
        .putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName())
        .putExtra(Settings.EXTRA_CHANNEL_ID, yourChannelId);
startActivity(intent);

使用ACTION_APP_NOTIFICATION_SETTINGS将列出该应用的所有频道:

Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
        .putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
startActivity(intent);

2
投票

这里是通知设置的片段以及细粒度的频道设置:

private void openNotificationSettings() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
        intent.putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName());
        startActivity(intent);
    } else {
        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        intent.setData(Uri.parse("package:" + getPackageName()));
        startActivity(intent);
    }
}

@RequiresApi(26)
private void openChannelSettings(String channelId) {
    Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS);
    intent.putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName());
    intent.putExtra(Settings.EXTRA_CHANNEL_ID, channelId);
    startActivity(intent);
}
© www.soinside.com 2019 - 2024. All rights reserved.