我知道这是一个老问题,但对于未来发现它的人而言:截至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版中,我没有看到它有任何区别。如果您要添加此参数,请确保您的Action
是ACTION_CHANNEL_NOTIFICATION_SETTINGS
。
ACTION_APP_NOTIFICATION_SETTINGS
操作中提供了一个EXTRA_CHANNEL_ID
额外参数,设置应用程序会崩溃的。 - undefined目前没有公开的API可让您直接深度链接到应用程序的通知设置。
您可以使用 Settings.ACTION_APPLICATION_DETAILS_SETTINGS
深链接到应用程序的设置,但这不会直接带您进入通知屏幕。
有没有办法链接到我的应用程序的Android通知设置? 其中提供了一个可能有效的解决方案,但由于它不是正式API的一部分,不能保证在所有设备上或未来的Android版本中都能正常工作。
如果有一种方法可以通过编程方式打开和关闭“阻止通知”,那也可以。
绝对不行。允许应用程序通过编程方式打开和关闭其通知功能,将破坏用户控制通知开关的目的。
APP_NOTIFICATION_SETTINGS
打开设置,如何打开子类别? - SagarIntent 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);