gpt4 book ai didi

ios - 我们可以检测用户是否通过主页按钮或锁定按钮离开而没有收听 darwin 通知吗?

转载 作者:IT王子 更新时间:2023-10-29 05:11:19 26 4
gpt4 key购买 nike

我最近向应用商店提交了一个新的二进制文件并将其送去审核,但立即被拒绝并显示以下消息。 “不支持的操作 - 不允许应用程序收听设备锁定通知。”。经过一番深入研究后,我发现我们无法使用“com.apple.springboard.lockstate”来确定锁定状态。

本质上,我的应用需要知道用户是如何离开我的应用的。无论是按下主页按钮,锁定按钮,通过点击另一个应用程序的通知离开应用程序等。有什么办法可以实现吗?我开始调查我的应用程序是否在后台运行,也许我们可以检查应用程序状态来弄清楚。据我所知,我想知道是否有人对此有任何见解

最佳答案

在搜索了 apple 的文档并挖掘了大量线程后,我想我可能偶然发现了解决方案。

据我所知,这是目前检测用户是通过主页按钮还是锁定按钮离开的唯一方法(我认为这在模拟器上不起作用,您必须在实际手机上尝试)。

在这个委托(delegate)内部(并且只有在这个委托(delegate)中调用时才会起作用)

func applicationDidEnterBackground(_ application: UIApplication) {

}

你可以在这里调用这个小片段:

func DidUserPressLockButton() -> Bool {
let oldBrightness = UIScreen.main.brightness
UIScreen.main.brightness = oldBrightness + (oldBrightness <= 0.01 ? (0.01) : (-0.01))
return oldBrightness != UIScreen.main.brightness
}

用法:

func applicationDidEnterBackground(_ application: UIApplication) {
if (DidUserPressLockButton()) {
//User pressed lock button
} else {
//user pressed home button
}
}

解释:

当用户通过锁定按钮而不是主页按钮离开时,苹果似乎只允许您从 applicationDidEnterBackground 更改屏幕亮度。因此,我们的想法是微调屏幕亮度并检查它是否能够更改。这看起来有点老套,但我听说这实际上是按预期工作的。就测试而言,它似乎 100% 的时间都在工作。除了确实想要更改屏幕亮度的用户外,我找不到任何问题。我希望其他人可以找到更具体、更简洁的内容。

关于ios - 我们可以检测用户是否通过主页按钮或锁定按钮离开而没有收听 darwin 通知吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44071009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com