在Android L上,我想在用户设置设置为“显示所有通知内容”时向用户显示锁定屏幕上的通知,否则内容将毫无意义,我只是不想在所有
知道如何在代码中验证用户通知设置吗?
谢谢!
答案 0 :(得分:3)
您需要阅读
Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS = "lock_screen_allow_private_notifications"
Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS = "lock_screen_show_notifications"
仅当两者均为1时,您才需要显示通知。 但由于这些值不属于公共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
}
答案 1 :(得分:1)
据我所知,您无法检查该设置,但您的应用可以在安全锁定屏幕上显示通知时控制可见的详细程度。要控制可见性级别,请致电setVisibility()
(Notification.Builder.setVisibility
)并指定其中一个值:
VISIBILITY_PUBLIC
:显示通知的完整内容。
VISIBILITY_PRIVATE
:显示基本信息,例如通知的图标,但会隐藏通知的完整内容。
VISIBILITY_SECRET
:不显示任何内容,甚至不包括通知的图标。
当可见性级别为VISIBILITY_PRIVATE
时,您还可以提供隐藏个人详细信息的通知内容的编辑版本。例如,SMS应用程序可能会显示一条通知,显示“您有3条新短信”,但会隐藏邮件内容和发件人。要提供此替代通知,请先使用Notification.Builder
创建替换通知。创建私有通知对象时,请通过setPublicVersion()
方法将替换通知附加到其中。