这是我的情况.我正在开发一个使用Core Location来确定设备位置的iPhone应用程序.有一个图标:位置服务图标,显示在设备的状态栏中.我知道该图标的目的是告诉用户当前正在使用位置服务.对于敏锐的用户,这意味着电池寿命缩短.出于这个原因,我想确保只有当我的应用实际使用位置服务时才会显示图标.
输入混乱.作为开发人员,我们无法通过官方SDK访问状态栏.这意味着操作系统将根据应用程序的行为自动显示该图标.尽我所能,我找不到明确定义该图标显示的原因.
目前,图标出现在我的应用代表获得控制权之前,只要应用程序已安装,运行与否,它就会保持可见状态.这显然是最糟糕的情况,它让我怀疑我的使用CLLocationManager.我会详细说明我的用法,但作为极端情况,我尝试删除CoreLocation框架(以及MapKit框架,我怀疑它也使用CoreLocation),以及与位置相关的所有代码.在我删除应用程序之前,应用程序仍会显示图标并保持不变.然后,我创建了一个全新的应用程序,除了更改应用程序标识符以匹配我的应用程序的标识符之外,不做任何更改.图标仍然出现.我更改了标识符以使用我的某个未使用位置的应用程序的标识符,并且未显示图标.我确实确保在此测试期间重置设备.
这个问题真的让我很伤心.我无法想象应用程序ID与位置服务图标有什么关系,但我认为其持久性没有其他原因.它似乎是一个隐藏真正问题的红鲱鱼,但我对真正的问题感到茫然.