以编程方式访问应用程序通知设置

24
在一个安卓应用中,我有一个按钮,我想让它具有打开应用通知设置(在安卓设置中)的功能。 Android相机应用程序通知设置截图 我可以使用以下代码打开安卓设置:
startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);

但我希望直接在我的应用程序通知设置中打开。

替代方法

如果有一种以编程方式打开和关闭“阻止通知”的方法,那也可以。


在应用程序中添加一个布尔型变量,保存它,并添加设置。 - Zoe stands with Ukraine
3个回答

61

我知道这是一个老问题,但对于未来发现它的人而言:截至Oreo(API级别26),现在有一个官方的深层链接Intent来设置特定应用程序的通知设置。

Intent settingsIntent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        .putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName())
        .putExtra(Settings.EXTRA_CHANNEL_ID, MY_CHANNEL_ID);
startActivity(settingsIntent);

EXTRA_CHANNEL_ID参数是可选的,根据文档,它将“突出显示该频道”。值得一提的是,在Android 8.1版中,我没有看到它有任何区别。如果您要添加此参数,请确保您的ActionACTION_CHANNEL_NOTIFICATION_SETTINGS


1
如何在Orio上打开应用程序的“通知类别”(默认)?在哪里可以更改声音,振动和其他设置。 - Sagar
7
要打开特定频道的设置,请使用新的Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)。 - Dmitry Grushin
@DmitryGrushin 哇,兄弟,你真是救了我一命啊!如果我在ACTION_APP_NOTIFICATION_SETTINGS操作中提供了一个EXTRA_CHANNEL_ID额外参数,设置应用程序会崩溃的。 - undefined

17

目前没有公开的API可让您直接深度链接到应用程序的通知设置。

您可以使用 Settings.ACTION_APPLICATION_DETAILS_SETTINGS 深链接到应用程序的设置,但这不会直接带您进入通知屏幕。

有没有办法链接到我的应用程序的Android通知设置? 其中提供了一个可能有效的解决方案,但由于它不是正式API的一部分,不能保证在所有设备上或未来的Android版本中都能正常工作。

如果有一种方法可以通过编程方式打开和关闭“阻止通知”,那也可以。

绝对不行。允许应用程序通过编程方式打开和关闭其通知功能,将破坏用户控制通知开关的目的。


我将使用 Settings.ACTION_APPLICATION_DETAILS_SETTINGS,谢谢。 - Thought
我正在使用 APP_NOTIFICATION_SETTINGS 打开设置,如何打开子类别? - Sagar

0
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);

如何在Orio上打开应用程序通知类别(默认)?我们可以在哪里更改声音,振动和其他设置? - Sagar
意图设置Intent settingsIntent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) .putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName()) .putExtra(Settings.EXTRA_CHANNEL_ID, "channel_id"); startActivity(settingsIntent); - Makvin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接