如果通知中心像 Dropbox 和 1Password 一样简单地显示,我如何检测用户解锁设备但不检测?

Posted

技术标签:

【中文标题】如果通知中心像 Dropbox 和 1Password 一样简单地显示,我如何检测用户解锁设备但不检测?【英文标题】:How do I detect the user unlocking the device but not if notification center is simply shown like Dropbox and 1Password? 【发布时间】:2016-05-12 15:28:31 【问题描述】:

我想在我的应用上实现密码屏幕。 Dropbox 和 1Password 的 iPhone 应用程序就是这样做的。当您离开并返回时,它将锁定应用程序,如果应用程序处于活动状态并且您锁定设备并解锁它,这也适用 - 将显示密码屏幕。

我的想法是使用applicationDidBecomeActive,但这在愚蠢的情况下会触发,比如只是拉下通知中心,它不应该锁定应用程序,也不会在 Dropbox 或 1Password 中。

他们是如何做到这一点的?

【问题讨论】:

我建议实现所有UIApplicationDelegate 方法并为每个方法添加日志语句。然后尝试所有不同的操作组合,看看你得到什么日志输出。看看每种情况有什么不同。 【参考方案1】:

我相信他们实际利用的是 Keychain 服务的 kSecAttrAccessible 属性,在这种情况下可能是 kSecAttrAccessibleWhenUnlocked,以在 Dropbox 和 1Password 中获得这种行为。

https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/

我认为您无法直接通过应用委托的方法获取该信息。您需要将您从应用委托中了解的关于应用变为活动状态的信息与钥匙串可用的安全属性结合起来。

【讨论】:

以上是关于如果通知中心像 Dropbox 和 1Password 一样简单地显示,我如何检测用户解锁设备但不检测?的主要内容,如果未能解决你的问题,请参考以下文章

sh 适用于Xubuntu 16.04的Dropbox通知区域图标错误的补丁。 Curtesy of:http://www.webupd8.org/2016/06/fix-dropbox-indica

你好华为手机的下滑后是一片空白什么都没有了,就像白板一样,比如数据开关,wiwf开关什么的这个是怎么了?

如何更改通知iOS中的图标?

取消已安排的本地通知

核心数据。如何交换 NSPersistentStores 并通知 NSFetchedResultsController?

Azure 通知中心注册模板 xml 无效