检查 Android 用户的 "when device is locked" 通知设置
Check Android user's "when device is locked" notification settings
在 Android L 上,我想仅在用户设置设置为 "show all notification content" 时在锁定屏幕上向用户显示通知,否则内容将毫无意义,我只是不想完全显示通知。
知道如何在代码中验证用户通知设置吗?
谢谢!
据我所知,您无法检查该设置,但您的应用可以控制其通知在安全锁定屏幕上显示时可见的详细程度。要控制可见性级别,请调用 setVisibility()
(Notification.Builder.setVisibility
) 并指定以下值之一:
VISIBILITY_PUBLIC
: 显示通知的全部内容。
VISIBILITY_PRIVATE
: 显示基本信息,例如通知的图标,但隐藏通知的全部内容。
VISIBILITY_SECRET
: 什么都不显示,甚至不包括通知的图标。
当可见性级别为 VISIBILITY_PRIVATE
时,您还可以提供隐藏个人详细信息的通知内容的编辑版本。例如,SMS 应用程序可能会显示显示 "You have 3 new text messages" 但隐藏消息内容和发件人的通知。要提供此替代通知,请首先使用 Notification.Builder
创建替换通知。当您创建私有通知对象时,通过 setPublicVersion()
方法将替换通知附加到它。
你需要阅读
Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS = "lock_screen_allow_private_notifications"
Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS = "lock_screen_show_notifications"
只有当两者都为 1 时,您才需要显示您的通知。
但由于这些值不是 public api 的一部分,这些值将来可能会更改,或者可能无法在所有设备上工作
int show_all = Settings.Secure.getInt(getContentResolver(),"lock_screen_allow_private_notifications", -1);
int noti_enabled = Settings.Secure.getInt(getContentResolver(),"lock_screen_show_notifications", -1);
if(show_all > 0 && noti_enabled > 0){
//post noti
}
在 Android L 上,我想仅在用户设置设置为 "show all notification content" 时在锁定屏幕上向用户显示通知,否则内容将毫无意义,我只是不想完全显示通知。
知道如何在代码中验证用户通知设置吗?
谢谢!
据我所知,您无法检查该设置,但您的应用可以控制其通知在安全锁定屏幕上显示时可见的详细程度。要控制可见性级别,请调用 setVisibility()
(Notification.Builder.setVisibility
) 并指定以下值之一:
VISIBILITY_PUBLIC
: 显示通知的全部内容。
VISIBILITY_PRIVATE
: 显示基本信息,例如通知的图标,但隐藏通知的全部内容。
VISIBILITY_SECRET
: 什么都不显示,甚至不包括通知的图标。
当可见性级别为 VISIBILITY_PRIVATE
时,您还可以提供隐藏个人详细信息的通知内容的编辑版本。例如,SMS 应用程序可能会显示显示 "You have 3 new text messages" 但隐藏消息内容和发件人的通知。要提供此替代通知,请首先使用 Notification.Builder
创建替换通知。当您创建私有通知对象时,通过 setPublicVersion()
方法将替换通知附加到它。
你需要阅读
Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS = "lock_screen_allow_private_notifications"
Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS = "lock_screen_show_notifications"
只有当两者都为 1 时,您才需要显示您的通知。 但由于这些值不是 public api 的一部分,这些值将来可能会更改,或者可能无法在所有设备上工作
int show_all = Settings.Secure.getInt(getContentResolver(),"lock_screen_allow_private_notifications", -1);
int noti_enabled = Settings.Secure.getInt(getContentResolver(),"lock_screen_show_notifications", -1);
if(show_all > 0 && noti_enabled > 0){
//post noti
}