Comment requestr la permission de l'user pour la deuxième fois pour permettre d'accéder à l'location actuel?

Dans mon application, si l'user n'est pas autorisé à accéder à sa position actuelle, je peux recevoir ce message dans la méthode suivante

- (void)locationManager:(CLLocationManager*)aManager didFailWithError:(NSError*)anError { switch([anError code]) { case kCLErrorLocationUnknown: break; case kCLErrorDenied: { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Access Denied" message:@"You didn't allow to access your current location" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; break; } } } 

Comment requestr la permission de l'user pour la deuxième fois?

J'ai cherché et obtenu la réponse NON, Si l'user veut que l'application accède à son location, comment il / elle a placé l'application pour utiliser leur location actuel?

Est-ce que supprimer l'application et en download une autre est la seule solution?

Je pense que vous pouvez activer les services de localization à partir de Paramètres du périphérique -> onglet Services de localization. Voir l'image ci-dessous

entrez la description de l'image ici

Mise à jour: lorsque les services de localization sont désactivés pour une application, le gestionnaire d'location triggers une erreur avec le code d'erreur kCLErrorDenied, puis vous pouvez afficher une alerte à l'user pour activer les services de localization à partir des parameters.

Ou, vous pouvez aussi utiliser le code suivant

 if (![CLLocationManager locationServicesEnabled]) 

Est-ce juste moi ou quoi? Il y a plusieurs questions comme celle-ci. Chacun d'entre eux est répondu par ce que l' user devrait faire pour réactiver le service de localization au lieu de ce que le programmeur devrait faire pour get cette précieuse alerte cohérente.

appel

 [singleton.locationManager startUpdatingLocation]; 

C'est en fait ce qui apparaît à l'alerte.

Si vous ne l'appelez pas, l'alerte ne s'affiche pas.

Si vous vérifiez d'abord si elle est activée, puis appelez-la uniquement si elle est activée, l'alerte ne s'affiche pas.

J'ai passé des semaines à comprendre cela. Il n'y a aucune information à ce sujet sur internet.

Je pense que oui. Supprimer l'application et en download une autre est la seule solution car ce message d'alerte demandant l'autorisation de l'user pour accéder aux parameters de localization ne se triggers pas par l'application mais par iPhone OS et par conséquent vous ne pouvez pas le requestr par programmation.

Cela doit être fait par les users.

dans ios 7: Paramètres-> Général-> Ressortingction-> activer si pas-> Sous confidentialité -Services de localization

Vous pouvez réinitialiser l'location manuellement dans votre appareil Configuration -> Confidentialité -> Emplacement , puis redémarrez votre application.