Les methods iBeacon Bluetooth didEnterRegion et didExitRegion ne sont jamais déclenchées

Il est très étrange que didEnterRegion et didExitRegion ne soient jamais déclenchés après l' startMonitoringForRegion de startMonitoringForRegion . De plus, didDetermineState peut être déclenché comme une attente.

Au cours de la phase actuelle , j'évalue uniquement la technologie iBeacon basée sur l'exemple de démonstration de code d'Apple, Airlocated .

Par conséquent, je ne mets en œuvre que deux methods, y compris didEnterRegion et didExitRegion dans le file APLAppDelegate.m comme ci-dessous:

 - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region { NSLog(@"Entered region: %@", region); [self sendLocalNotificationForBeaconRegion:(CLBeaconRegion *)region]; } - (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region { NSLog(@"Exited region: %@", region); } 

Les étapes suivantes ont été essayées, mais aucun effet.

  • Réinitialiser iPhone5 / iPhone4s avec iOS7.1
  • Configurez le mode d'arrière-plan et * .plist comme ci-dessous:
  1. dans info de projet ou info.plist -> Custom IOS Target Properties ->. ajoutez "Modes d'arrière-plan requirejs". dans ceci ajoutez deux articles ->. "L'application partage des données utilisant CoreBluetooth". "Les registres d'application pour des mises à jour de localization"
  2. dans la capacité du projet -> Il y a des modes d'arrière-plan
    . cochez "Mise à jour de la mise à jour"
    . cochez "Agit comme un accessoire Bluetooth LE". cocher "utilise les accessoires bluetooth LE"
  • Autorisez l'application à accéder à l'location de l'appareil.

Alors, quelqu'un pourrait-il me donner des suggestions à ce sujet?

Merci d'avance.

Ajoutez la méthode startRangingBeaconsInRegion après startMonitoringForRegion et réessayez

[_locationManager startRangingBeaconsInRegion:demoRegion]; // demoRegion – région que vous avez créée