Comment réveiller l'application iOS avec le signal Bluetooth (BLE)
à l'aide de la BLE avec CoreBluetooth (pas de iBeacon), il est un moyen de réveiller l'application a pas d'application en cours d'exécution lorsque l'appareil reçoit un signal bluetooth?
Je suis en simulant une balise avec la redbearlab du BLE Bouclier (http://redbearlab.com/bleshield/).
Grâce,
DAN
* Mise à JOUR 03/05/14 *
On dirait qu'Apple a introduit une mise à jour majeure de l'iOS 7.1: maintenant, iOS, ouvrez votre application pour vous si il détecte un UUID qui correspond à votre application. L'application ne doit être installé, il ne doit pas être en cours d'exécution (logique en AppDelegate nécessaires pour répondre à l'appel de réveil).
source d'informationauteur DAN | 2013-11-12
Vous devez vous connecter pour publier un commentaire.
Si l'application était en cours d'exécution en arrière-plan, puis fermé (je veux dire ici terminé - et vous ne voyez pas de plus dans la liste de l'arrière-plan des applications lorsque vous double-cliquez sur le bouton home) en raison de la pression de la mémoire à partir d'autres applications, iOS va prendre soin de réveiller à nouveau lorsqu'un délégué est appelé (en supposant que vous avez des antécédents modes listés dans .plist).
Si l'application était en cours d'exécution en arrière-plan, puis fermée par l'utilisateur (encore une fois je veux dire ici terminé. Ainsi, l'utilisateur double-clique pour obtenir la liste des applications en cours d'exécution en arrière-plan, puis cliqué sur votre application dans la liste arrière-plan jusqu'à ce qu'il gratta puis appuie sur " x " en regard de l'application de la tuer), alors c'est une indication claire que l'utilisateur ne souhaite pas que l'application qui s'exécute en arrière-plan et l'application ne sera pas relancé. L'utilisateur dispose de relancer l'application pour ses délégués à recommencent à fonctionner en arrière-plan (iOS7).
Mise à jour:
Je ne suis pas sûr si c'est dans la documentation, mais il est dans CoreBluetooth de la WWDC 2013 Vidéo. Je vous recommande de le regarder. Ils ont passé une bonne partie de la vidéo sur comment CoreBluetooth se comporte à l'arrière-plan.
De ce que je comprends, si votre application n'a pas déjà connecté avec le BLE Périphérique, alors non.
Si votre application possède déjà connecté avec le BLE Périphérique, puis utilisez:
-connectPeripheral:options
Les demandes de connexion n'a pas le temps. Le meilleur endroit pour appeler cette méthode, c'est quand votre application perd la connexion avec le BLE périphérique. Vous serez averti lorsque vous perdez la connexion au périphérique dans le CBCentralManagerDelegate Protocole:
-centralManager: didDisconnectPeripheral: erreur
Donc, la prochaine fois que votre Application est livré dans la gamme du BLE Périphérique, il sera le déclencheur de cette méthode. Notez également que vous aurez besoin pour définir l'État de Conservation et de Restauration lorsque vous initialisez un CBCentralManager.
https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html
Vous pourriez essayer de déclarer la voip en info.plist. Pour le moment, ma demande a été automatiquement relancé après un certain temps, même l'utilisateur a terminé.