ios - una - no se pudo verificar la app iphone
Detecta dispositivos móviles cercanos desde una aplicación de iOS (4)
Si usa Bluetooth de baja energía, solo detectará el periférico de los dispositivos BLE. Sin embargo, hay una limitación del rango. Según la documentación, el alcance de los dispositivos BLE es de alrededor de 300 metros. Puede obtener la intensidad de la señal en el método periférico CBCentralManager:
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
Aquí RSSI es la potencia de tu señal. Pero el dispositivo periférico tiene que ser BLE, es decir, bluetooth versión 4.0 o superior
¿Es posible crear una aplicación de iOS que busque dispositivos móviles cercanos (por ejemplo, iPhone, Android, iPad, etc.) sin necesidad de ejecutar ninguna aplicación personalizada en esos dispositivos móviles cercanos?
He intentado usar CoreBluetooth como tal, ejecutándose en mi iPhone 6+:
[self.centralManager scanForPeripheralsWithServices:nil options:nil];
Pero el único dispositivo cercano que detecta es mi iMac, no detectará mi iPad Air 2 ni mi auricular bluetooth.
¿Estoy haciendo algo mal?
Core Bluetooth funciona solo con dispositivos Bluetooth Low Energy (aka Bluetooth 4.0), no con los Bluetooth clásicos. Para ser detectable, un dispositivo tiene que anunciar uno o más servicios BLE. Puede implementar CBPeripheralManager
para hacer eso e incluso hay un código de muestra de Apple para el lado "escáner" y "periférico". Tenga en cuenta que de esta manera también puede descubrir o ser descubierto por otros dispositivos móviles, como los teléfonos inteligentes Android.
No sé si es posible detectar los servicios de Hotspot o Handoff BLE. Core Bluetooth no le permite acceder a los paquetes de publicidad "raw" Bluetooth Low Energy, por lo que Apple probablemente filtre algunas cosas.
Si desea detectar solo dispositivos iOS (y ningún otro dispositivo / accesorio BLE), también puede usar el marco de Conectividad Multipeer. Personalmente, me resulta un poco más fácil de usar e incluso proporciona una vista integrada de "dispositivos descubiertos" . Pero aún debe ejecutar una aplicación personalizada en ambos lados.
Si no necesita colocar lo que está construyendo en la App Store, puede hacer un jailbreak a su iPhone y obtener acceso directo a los paquetes.
Bluetooth Companion , disponible en Cydia, le mostrará los paquetes bluetooth en su teléfono. No estoy seguro de si la fuente de ese proyecto está disponible, pero podría mirar otro proyecto como BTStack (aquí hay una buena guía de Introducción ).
Tomaré la perspectiva de alguien involucrado en el desarrollo de sistemas integrados. Como se mencionó anteriormente, BLE solo detecta periféricos de otros dispositivos BLE, por lo tanto, no creo que la tecnología Bluetooth sea la mejor opción para una aplicación que detecta dispositivos móviles cercanos.
Tu aplicación debe consistir en dos funciones de detección. Uno debería haber usado Bluetooth para detectar PC normales y usar GPS para detectar otros dispositivos móviles, ya que es el único otro periférico que creo que está presente en Android y 4G ipad mini, etc.
Para su auricular, si no se detecta, no conozco ninguna solución de software que modifique las incompatibilidades de hardware, por lo que le recomendaría que obtenga un auricular que sea compatible con el dispositivo bluetooth.
Su problema no es de software, yace en las limitaciones de hardware de los dispositivos.