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

标签 android android-notifications android-settings

<分区>

在 Android 应用程序中,我有一个按钮,我希望它具有打开应用程序通知设置的功能(在 Android 设置中)。

Screenshot of Android's notification settings for the Camera application

我可以用这个打开 Android 设置

startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);

但我想直接在我的应用通知设置上打开

备选

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

最佳答案

我知道这是一个老问题,但对于那些在未来发现它的人:从 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 参数是可选的,并且根据 the docs , 将“突出显示该 channel ”。 FWIW,从 Android 8.1 开始,我看不出它有什么不同。如果您要添加此参数,请确保您的ActionACTION_CHANNEL_NOTIFICATION_SETTINGS

关于android - 以编程方式访问应用程序通知设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38124552/

相关文章:

android - 每天同一时间通知

android - java.lang.SecurityException : Permission Denial: getIntentSender() from pid=1484, uid=10151, (需要uid=1000)

android - 在某些 Android 设备上设置亮度的问题

android - 如何加密和解密Android SD卡中的文件夹

Android onNewIntent 总是收到相同的 Intent

android - 请帮助阐明 Android 中设置 Activity 的当前标准

java - 如何使用 SeekBar 以编程方式调整设备亮度?

android - ItemTouchHelper,滑动以删除 Canvas 中的文本

android - 两个ListView可以使用同一个ArrayAdapter吗?

android - 如何提高布局性能