J'ai lu comment transférer des données entre appareils iOS via Bluetooth à l'aide de GameKit. Je ne suis pas en train d'écrire un jeu en tant que tel, mais j'ai besoin de transférer une petite quantité de données binaires entre deux appareils. Entre deux appareils iOS, c'est assez simple. Cependant, je me demandais s’il était possible de transférer des données entre un appareil iOS et un appareil Android via le même mécanisme.
Quelqu'un at-il rencontré de la documentation/tutoriel qui expliquerait comment faire cela? Est-ce même techniquement possible? Ou bien Apple a-t-il mis en place une sorte de restriction qui empêcherait cela?
L'autre option que j'ai découverte est Bonjour via Bluetooth. Serait-ce une option plus appropriée pour ce type d'opération?
Cette question a été posée à plusieurs reprises sur ce site et la réponse définitive est la suivante: NON, vous ne pouvez pas connecter un téléphone Android à un iPhone via Bluetooth , et YES Apple a des restrictions qui l’empêchent.
Quelques alternatives possibles:
Alternative la plus cool : utilisez le Bump API . Il a iOS et Android support et vraiment facile à intégrer. Pour les petites charges utiles, cela peut être la solution la plus pratique.
Détails sur la raison pour laquelle vous ne pouvez pas connecter un périphérique arbitraire à l'iPhone . iOS n'autorise l'utilisation que de certains profils Bluetooth sans la certification MFi (Made For iPhone) ( HPF, A2DP, MAP ... ). Le profil du port série dont vous auriez besoin pour mettre en œuvre la communication est lié à l’appartenance MFi. L'adhésion à ce programme vous fournit le module d'authentification MFi à ajouter à votre matériel et prend en charge l'authentification de l'appareil auprès de l'iPhone. Android les téléphones n'ayant pas ce module, la procédure d'authentification échouera même si la connexion physique peut être établie. La communication d'iPhone à iPhone est possible car les deux extrémités peuvent s'authentifier.
Peut-être un peu en retard, mais les technologies ont évolué depuis, donc il y a certainement de nouvelles informations autour desquelles jette un nouvel éclairage sur le sujet ...
Comme iOS n’a pas encore ouvert d’API pour la connectivité Wi-Fi Direct et Multipeer, j’estime que la meilleure façon de procéder consiste à utiliser BLE, qui est pris en charge par les deux plates-formes (certaines meilleures que d’autres).
Sur iOS, un appareil peut jouer simultanément le rôle de périphérique BLE central et de périphérique BLE. Sous Android, la situation est plus complexe car tous les périphériques ne prennent pas en charge l'état de périphérique BLE. De plus, la pile Android BLE est très instable (à ce jour).
Si votre cas d'utilisation est axé sur les fonctionnalités, je vous conseillerais de consulter les frameworks et les bibliothèques capables de réaliser une communication multiplate-forme pour vous, sans que vous ayez besoin de la construire à partir de zéro.
Par exemple: http://p2pkit.io ou google à proximité
Disclaimer: Je travaille pour Uepaa et développe p2pkit.io pour Android et iOS.
Vous pouvez utiliser p2pkit, ou la solution gratuite sur laquelle elle est basée: https://github.com/GitGarage . Ne fonctionne pas très bien, et c’est sûr, mais c’est gratuit. Fonctionne pour de petites quantités de transfert de données pour le moment.