CLLocationManager
提供了一种通过委托locationManagerDidChangeAuthorization
方法对授权更改做出反应的方法,但我找不到其他权限类型的等效方法。也就是说,相机访问或照片库访问似乎没有提供任何方法来对用户设置和更改授权做出反应。
我想我可以深入研究我调用的每种方法并捕获与该功能的权限被拒绝相关的任何错误,但这确实是一种低劣的方法。有没有一种方法可以确定地对 iOS 开发的授权更改做出反应?
CLLocationManager
提供了一种通过委托locationManagerDidChangeAuthorization
方法对授权更改做出反应的方法,但我找不到其他权限类型的等效方法。也就是说,相机访问或照片库访问似乎没有提供任何方法来对用户设置和更改授权做出反应。
我想我可以深入研究我调用的每种方法并捕获与该功能的权限被拒绝相关的任何错误,但这确实是一种低劣的方法。有没有一种方法可以确定地对 iOS 开发的授权更改做出反应?
每个对象(例如 CLLocationManager、AVCaptureDevice 等)都有不同的用途。CLLocationManager 有自己的委托来确定授权状态,但这并不意味着其他对象也需要这样做。
然而,这些对象之间的共同点是它们都有一种方法可以获取当前状态:
函数/属性可以随时调用。因此,如果是这种情况,您想要确定用户何时更改 中的权限
Setting
,您可以简单地定义一个类并在 或 时添加一些处理程序didBecomeActive
。didFinishLaunchingWithOptions
然后根据需要指示行为。