Je me demandais si je pouvais mesurer la puissance du signal des appareils Bluetooth à portée de mon iPhone. Fondamentalement, ce que je veux faire est de scanner une liste de périphériques à portée, puis de voir lequel a la puissance de signal la plus élevée. Est-ce possible sur iOS et comment le ferais-je?Puis-je mesurer la force du signal Bluetooth dans iOS?
Répondre
Oui, il existe un moyen de mesurer la force du signal pour Bluetooth Low Energy (4.0) c'est le numéro RSSI. Lors de la numérisation pour les périphériques que vous mettrez le CBCentralManagerScanOptionAllowDuplicatesKey drapeau YES comme indiqué ci-dessous:
NSDictionary * dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@YES, CBCentralManagerScanOptionAllowDuplicatesKey, nil];
// Start scanning for peripherals
[cmanager scanForPeripheralsWithServices:nil options:dictionary];
Si vous voulez voir le travail numéro RSSI sans écrire de code que vous devriez vérifier l'application LightBlue dans iTunes. Lorsque vous vous connectez à un périphérique, il affiche le numéro RSSI mis à jour toutes les secondes lorsqu'il est connecté.
Jetez un oeil à la CoreBluetooth documentation:
- (void)centralManager:(CBCentralManager *)central
didDiscoverPeripheral:(CBPeripheral *)peripheral
advertisementData:(NSDictionary *)advertisementData
RSSI:(NSNumber *)RSSI
{ ... }
RSSI est ce que vous recherchez. Disclaimer: Core Bluetooth est fait pour Bluetooth 4 LE seulement.
Si la plage exacte n'a pas d'importance, mais vous êtes intéressés par des dispositifs de balayage qui sont disponibles en général, vous pouvez jeter un oeil au projet github BeeTee, qui vous permet de numériser tous les périphériques Bluetooth autour de vous (non seulement Bluetooth LE). Encore une fois, je suis l'auteur de BeeTee. ;-)
Lorsque vous codez votre code "central" à l'aide de CBCentralManager, vous vous connecterez éventuellement au CBPeripheral que vous recherchez. Une fois que vous êtes connecté au périphérique, gardez une référence, définissez votre objet en tant que délégué du périphérique et appelez 'readRSSI' sur le périphérique. Vous obtiendrez un rappel de délégué peripheral: didReadRSSI: error: Si vous écrivez une méthode qui appelle 'readRSSI', vous pouvez l'appeler en utilisant performSelector: withObject: afterDelay:.
Une autre des réponses suggérées à cette question est de fournir la clé «autoriser les doublons» lors de la numérisation. Les docs pour la clé de dictionnaire CBCentralManagerScanOptionAllowDuplicatesKey lorsqu'il est passé à scanForPeripheralsWithServices:options: indiquent que "La désactivation de ce filtrage peut avoir un effet négatif sur la durée de vie de la batterie et ne doit être utilisée que si nécessaire".
Si vous choisissez d'écrire une invocation différée, vous pouvez régler la fréquence des appels pour vous aider à gérer l'impact sur les batteries de vos utilisateurs.
- 1. Lecture de la force du signal Bluetooth
- 2. Est-il possible d'obtenir Bluetooth MAC et/ou la force du signal dans iOS 6?
- 3. Signal Bluetooth faible iOS
- 4. Force du signal instantané
- 5. Force du signal iPhone
- 6. Bluetooth Android lecture de la puissance du signal RSSI
- 7. obtenir la force du signal android
- 8. la force du signal wifi Android
- 9. Déterminer la force du signal de données
- 10. Linux Bluetooth l2ping avec la puissance du signal
- 11. Mesurer la fréquence et l'amplitude du signal analogique avec Labview
- 12. changer la force du signal par programmation dans android
- 13. Comment lire la force du signal GPS dans Windows Mobile?
- 14. Mesures de la force du signal des réseaux mobiles dans iOS et/ou Android?
- 15. Force actuelle du signal sur l'appareil Android
- 16. [ionique] Comment obtenir la valeur de force du signal wifi
- 17. Comment savoir la force du signal porteur programatically
- 18. Android: Comment puis-je personnaliser la force du signal NFC?
- 19. Obtenir la force du signal porteur de l'iPhone par programmation
- 20. Comment obtenir la force du signal sur obj-c?
- 21. Force la découverte bluetooth android sur
- 22. Comment mesurer le signal 5V avec la carte son
- 23. Comment puis-je mesurer la puissance du réseau (le signal WIFI) dans windows-CE?
- 24. Android simuler une force de signal faible
- 25. Intention sur le changement de force du signal wifi
- 26. Obtenez Cell RSSI (Force du signal réseau) sur Android 1.5
- 27. Mesurer la distance entre deux appareils iOS
- 28. iOS Imprimante Bluetooth?
- 29. iOS + Bluetooth - Comment faire?
- 30. ios de rotation du dispositif de force