2013-03-22 16 views
16

Prima di tutto sono uno sviluppatore Android, quindi la domanda va a tutti gli sviluppatori iOS.Android <-> Comunicazione diretta iOS (Bluetooth). È possibile?

E 'possibile ottenere un Android < -> iPhone/iPad comunicazione diretta?
Alcuni sostengono che non è possibile, altri sostengono che lo sia.

immagino due possibili tecnologie sarebbe Bluetooth e/o Wi-Fi Direct.
Wi-Fi Direct non è raccomandato in quanto non è supportato da Gingerbread e per quanto ne so, non è supportato da iPhone o (forse iPhone 6, come ho sentito, dalle voci)

E ' già noto che la comunicazione Bluetooth è ottenuta tra dispositivi iOS utilizzando GameKit e qui è un reference.

Non capisco cosa c'è di così speciale quando si comunica con GameKit ??
I messaggi hanno avvolto in qualche modo con byte aggiuntivi all'inizio e alla fine del messaggio? Bene, possiamo avvolgere i messaggi nello stesso modo in Android!
I messaggi sono crittografati? !! E se sì, potremmo decrittografarli quando vengono ricevuti su un dispositivo Android?

Tutte le idee, soluzioni alternative o altre soluzioni di hacker sono per lo più benvenute!

+2

beh, la domanda a cui si fa riferimento come duplicato è stata richiesta più di un anno fa. Qualcuno si aspetterebbe aggiornamenti recenti in merito. Ma grazie per aver collegato la domanda –

+0

ad alcune informazioni correlate in questo link: http://is.gd/i2UbhE ma non riesco ancora a trovare una buona risposta perché suppongo che l'Android bluetooth api sia un livello superiore (facile come lavorare con gli input -output stream) e per la soluzione iOS devi andare più in profondità da quello che posso dire .. –

+1

Forse in leggero ritardo, ma le tecnologie si sono evolute da allora: lo stato attuale è che la connessione tra iOS e Android è possibile su BLE, comunque ancora molti Androidi non supportano la modalità Perle BLE, inoltre lo stack BLE di Android è molto instabile. Inoltre, WiFi Direct è supportato da Android, ma su iOS non è ancora disponibile pubblicamente. Se posso, ti consiglio di consultare i framework che possono fare cross p2p per te in modo che tu non debba perdere tempo a scrivere codice di rete. Tali quadri potrebbero essere quello su cui sto lavorando chiamato http://p2pkit.io o google nelle vicinanze. – p2pkit

risposta

1

Per i dispositivi sulla stessa rete locale, Bonjour (a.k.a. zeroconf) può essere un buon modo per i processi su macchine/dispositivi diversi di scoprire e interagire tra loro.

Vedere apple bonjour for android per alcuni indicatori di un'implementazione Android di Bonjour.

+0

stessa rete locale? Nop! I dispositivi non appartengono a una rete locale. In realtà nessuna rete è supposta, né un internet. Questo è il motivo per cui ho citato wifi - ** direct ** e non semplice wifi, e anche questo è il motivo per cui il bluetooth è importante –

+0

Ciao @Caleb ho bisogno di creare la mia app per tale comunicazione è possibile? –

+0

Mentre io non ero in grado di scoprire un servizio bounjour (biblioteca CocoaHTTP) che va dal mio iPhone mi è stato in grado di codificare l'indirizzo IP del hotspot iPhone (di default è 170.20.10.1) e la porta e connettersi ad esso su Android e recuperare un web pagina ospitata su iPhone. – Fraggle

3

iOS non implementa alcun protocollo Bluetooth standard che consenta di comunicare con altri sistemi operativi. GameKit è proprietario e se fosse facile hackerarlo, la gente lo avrebbe già fatto (e Apple avrebbe chiuso il buco).

Bluetooth LE è supportato solo da pochi dispositivi Android (non è ancora in AOSP), quindi non è ancora molto utile, anche se supportava il peer-to-peer.

Ho letto che è possibile eseguire ciò che si desidera tramite Wi-Fi diretto, ad es. con questa libreria: https://www.alljoyn.org/ Si dice che supporta sia Android & iOS - Non l'ho provato da solo, ma sembra fare ciò che si sta cercando.

16

Ci sono tre quadri disponibili in iOS con cui è possibile sviluppare le applicazioni Bluetooth:

1. GameKit: Questa è la struttura a disposizione del pubblico. Ma usando questo puoi solo stabilire e comunicare tra solo due dispositivi iOS. Quindi questo framework ha i suoi limiti.

2. BluetoothManager: Questa è una struttura privata.Ho usato questo framework per scoprire i dispositivi non iOS. Ho stabilito anche la connessione. Ma non posso fare lo scambio di dati. Penso che sia ancora in fase di sviluppo. Per il riferimento è possibile fare riferimento a this link

3. CoreBluetooth: Questa è anche la struttura pubblica. Questo può solo scoprire dispositivi abilitati BLE. Ho usato con successo questo per trasferire i dati tra i dispositivi abilitati BLE.

+1

Hai affermato di aver trasferito correttamente i dati tra dispositivi abilitati BLE tramite CoreBluetooth. Con che tipo di dispositivi BLE stai parlando? Puoi confermare/trasferire i dati su un dispositivo Android come Samsung Galaxy S4 o Nexus 4? O solo un pin BLE? @ V-Xtreme – klefevre

+0

@ kl94: per il trasferimento dei dati è sufficiente disporre di due dispositivi abilitati BLE, indipendentemente dal fatto che si tratti di dispositivo iOS, dispositivo Android o modem BLE. Se riesci a rendere i livelli come periferica, servizio e caratteristiche puoi fare qualsiasi operazione con le caratteristiche a seconda della proprietà della caratteristica, cioè Leggi/Scrivi/Notifica –

+0

Solo una FYI per qualcuno che scherza con CoreBluetooth, ecco un link a qualche esempio di codice sorgente fornito da Apple: https://developer.apple.com/library/ios/samplecode/TemperatureSensor/Listings/TemperatureSensor_main_m.html#//apple_ref/doc/uid/DTS40012194-TemperatureSensor_main_m-DontLinkElementID_12 –

Problemi correlati