CLLocationManager
fornece uma maneira de reagir às alterações de autorização por meio do método do delegado locationManagerDidChangeAuthorization
, mas não consegui encontrar o equivalente para outros tipos de permissão. Ou seja, o acesso à câmera ou à biblioteca de fotos parece não fornecer nenhuma maneira de reagir ao usuário ao configurar e alterar a autorização.
Acho que poderia me aprofundar em cada método que chamo e detectar qualquer erro relacionado à negação da permissão do recurso, mas essa é uma abordagem realmente inferior. Existe uma maneira de reagir de forma determinística às alterações de autorização em geral para o desenvolvimento do iOS?
Cada objeto, como CLLocationManager, AVCaptureDevice, etc. tem finalidades diferentes. CLLocationManager tem seu próprio delegado para determinar o status de autorização, mas isso não significa que outros objetos precisem fazê-lo.
Porém, o comum entre esses objetos é que eles possuem uma forma de obter o status atual:
A função/propriedade pode ser chamada a qualquer momento. Então, se for esse o caso, você deseja determinar sempre que o usuário altera a permissão em
Setting
, basta definir uma classe e adicionar alguns manipuladores sempre quedidBecomeActive
oudidFinishLaunchingWithOptions
. Em seguida, indique o comportamento que desejar.