解决在iOS8环境下,当用户关闭定位服务总开关时,无法将APP定位子选项加入定位权限列表的问题

  关键点:- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status代理方法

  iOS7环境下当APP首次调用startUpdatingLocation方法开启定位服务时,系统会自动将该APP的定位子选项加入设置中的定位权限列表,并弹框提示用户是否为该APP定位服务授权。

  可是在iOS8环境下,使用定位服务的方式较之前版本发生改变,调用startUpdatingLocation方法前需要调用requestWhenInUseAuthorization方法来请求定位权限; 但是在用户关闭定位服务总开关时,单单使用该方法却无法将APP定位的子选项加入定位权限列表,用户在打开定位总开关后是找不到该APP的子选项的,除非在定位服务总开关打开的情况下才能正常加入权限列表;

  解决方法是将开启定位的startUpdatingLocation方法放在didChangeAuthorizationStatus:代理方法中调用:

  1)首先调用requestWhenInUseAuthorization方法请求定位权限(iOS7及以前无需调用此方法);

  2)然后在didChangeAuthorizationStatus:代理方法中调用startUpdatingLocation方法请求一次定位;

  采用这种方式解决,无论定位服务的总开关是否打开,都能将APP的定位子选项加入定位权限列表。

时间: 2024-08-23 23:58:07

解决在iOS8环境下,当用户关闭定位服务总开关时,无法将APP定位子选项加入定位权限列表的问题的相关文章

在iPad iOS8环境下打开相冊或者拍照

在iPad下打开相冊或者拍照,假设使用 UIImagePickerController 打开相冊或者拍照,那必需要用到 UIPopoverController 去打开. UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker]; self.popoverController = popover; [self.popoverController presentP

在iPad iOS8环境下打开相册或者拍照

在iPad下打开相册或者拍照,如果使用 UIImagePickerController 打开相册或者拍照,那必须要用到 UIPopoverController 去打开. UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker]; self.popoverController = popover; [self.popoverController presentP

解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法

在 GTK+/GNOME 3 环境下采用默认的 Adwaita 主题时,Java Swing 程序如果使用本地 GTK+ 主题会出现菜单无边框的 bug,这个问题也可能在其他常用的 GTK+ 主题中出现.说这是 Java Swing 的 bug 还是 GTK+/GNOME 3 的主题(如 Adwaita)的 bug 其实意义不是太大.这里给出一个简单的解决办法,其思路是修改 GTK+/GNOME 3 的主题,这里以系统默认的 Adwaita 主题为例: Adwaita 主题文件位于 /usr/s

解决在VSAN环境下嵌套ESXI出错的问题

在VSAN环境下,如果直接在esxi上嵌套esxi,在按下F11开始安装时,会出现以下报错 可以参考此文章解决:https://tsmith.co/2013/running-nested-esxi-5-5-on-vsan/ 即在当前 主ESXi系统上(物理机),通过SSH登陆运行以下命令:esxcli system settings advanced set -o /VSAN/FakeSCSIReservations -i 1

Linux下Redis启动/关闭/重启服务脚本

脚本功能: 实现redis单机多实例情况下的正常启动.关闭.重启单个redis实例.完成系统标准服务的以下常用功能:  start|stop|status|restart 注:redis程序代码屏蔽了HUP信号,不支持在线重载配置文件,故去掉reload功能. 本脚本优化了redis停止和重启逻辑,解决原redis脚本关闭时会造成数据丢失问题. 脚本名称: redis           #在多实例里可以按实例端口,如:redis-6001命名,以区分不同实例 脚本用法: 1.在/etc/rc.

Windows下快速启动/关闭orcl服务

大家都知道windows下绝大部分都是图形操作化,很少用命令来执行,例如启动.关闭orcl数据库服务时,一般情况都是在任务管理器(taskmgr.ctrl+shift+esc)或服务(services.msc)等方式找到orcl相关服务手动挨个挨个启动.关闭服务,这样个人感觉效率低,也很繁琐,今天教大家一个快速启动.关闭orcl服务的方法,方便你我他她....... 在cmd下有两种命令方法启动服务,分别为net和sc命令,区别是sc可以启动被禁用的服务 net语法是: net start 服务

如何在SAP云平台的Cloud Foundry环境下添加新的Service(服务)

我想在SAP云平台的Cloud Foundry环境下使用MongoDB的服务,但是我在Service Marketplace上找不到这个服务. cf marketplace返回的结果也没有. 解决方案 退回到Global Account,点击Entitlement,发现没有给Subaccount分配MongoDB: 分配成1,保存即可. 再回到organization的space下面,发现现在MongoDB服务可用了. cf marketplace能看到MongoDB服务的版本. 要获取更多Je

Windows Server 2012 AD DS环境下域用户自动加入本地管理员组

遇到的小伙伴多了,就会发现小伙伴需求真是各种各样,就像客户端加入域一样,有的客户就要求,加入域之后,此员工的域账号自动加入本地管理员组:也有客户要求,加入域后,此员工的域账号只能是受限制的普通USER,不能有任何多余的权限,包含修改网络配置等.好吧,用户的需求都是有道理的.下面,咱们就来看一下,如何实现加入域之后,自动加入到本地管理员组. 我们的Server01是一台域控制器,然后再找一台Win8.1做客户机,至于说如何升级域控制器,在此就不再描述了,网上的资料一大把.至于把域用户加入本地管理员

解决ssh或ftp下root用户认证失败问题

问题:当连接ssh远程终端或使用ftp方式进行文件传输时,使用普通用户可以进行远程登录,但使用root用户则认证失败,提示密码错误.而我们在普通用户登录下,su - root,验证密码,是可以正常切换到root用户的. 背景工具:ubuntu系统, SecureCRT,FileZilla/FlashFXP等 解决方法: 1.登录普通用户,su - root 切换到root用户下: 2.cd /etc/ssh,切换到以下目录: 观察到该目录下存在ssh_config和sshd_config文件.