gpt4 book ai didi

iphone - 是什么决定了状态栏中是否存在 iPhone 定位服务图标?

转载 作者:太空狗 更新时间:2023-10-30 03:17:44 25 4
gpt4 key购买 nike

这是我的情况。我正在开发一个使用 Core Location 来确定设备位置的 iPhone 应用程序。有一个图标:位置服务图标,出现在设备的状态栏中。我知道该图标的目的是告诉用户定位服务当前正在被某物使用。对于敏锐的用户来说,这意味着电池生命周期会缩短。出于这个原因,我想确保只有在我的应用程序实际使用定位服务时才会显示该图标。

输入混淆。作为开发人员,我们无法通过官方 SDK 访问状态栏。这意味着操作系统将根据应用程序的行为自动显示该图标。尽我所能,我找不到明确的定义来说明是什么原因导致该图标出现。

就目前而言,该图标会在我的应用程序委托(delegate)获得控制权之前出现,并且只要应用程序已安装、正在运行或未运行就一直可见。这显然是最坏的情况,这让我怀疑我对 CLLocationManager 的使用。我会详细说明我的使用,但作为一个极端的例子,我尝试删除 CoreLocation 框架(和 MapKit 框架,我怀疑它也使用 CoreLocation),以及所有与位置相关的代码。该应用程序仍然会导致图标出现并保留,直到我删除该应用程序。然后我制作了一个全新的应用程序,除了更改应用程序标识符以匹配我的应用程序标识符外,没有做任何更改。图标仍然出现。我更改了标识符以使用我的一个不使用位置的应用程序的标识符,但图标没有出现。在此测试期间,我确实确保重置了设备。

这个问题真让我难受。我无法想象应用程序 ID 与位置服务图标有什么关系,但我看不到它持续存在的其他原因。这似乎是一个隐藏真正问题的红鲱鱼,但我对真正的问题一无所知。

最佳答案

这是我经过一些调整后得出的更新和解决方案。由于我的问题显然是操作系统在我的应用程序 ID 和定位服务图标之间建立某种联系的问题,因此我尝试重置设备的位置警告,我最初并不知道我可以这样做。出于好奇,这可以通过“设置”应用程序,然后是“通用”>“重置”>“重置位置警告”来完成。进行此重置并重新安装应用程序后,它再次请求使用定位服务。现在,该图标准确地出现在 startUpdatingLocation 上,并准确地消失在 stopUpdatingLocation 上,这完全符合我最初的预期。

我不知道最初是什么导致了这种情况,而且我毫不怀疑这种情况本身是操作系统错误,正如 Matthew Frederick 所指出的那样,但至少在我的情况下,这种情况是可以治愈的。

关于iphone - 是什么决定了状态栏中是否存在 iPhone 定位服务图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4413963/

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