Sto sviluppando un'applicazione che dovrebbe collegare automaticamente 2 dispositivi Android tramite Bluetooth. Diciamo che sono già accoppiati. È possibile raggiungerlo?Come collegare programmaticamente 2 dispositivi Android con bluetooth?
risposta
Ovviamente è possibile. Prenderò un breve tutorial dalla documentazione:
Iniziare con BluetoothAdapter: è il tuo gestore Bluetooth.
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Se bluetoothAdapter
è nullo, significa che questo dispositivo Android non supporta il Bluetooth (Non ha una radio Bluetooth. Anche se penso che è raro incontrare questi dispositivi ...)
Quindi, assicurarsi che Bluetooth è attiva:
if (!bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, request_code_for_enabling_bt);
}
Se non è acceso, iniziamo l'attività che chiede all'utente di abilitarla.
Diciamo che l'utente ha abilitato (suppongo che si dovrebbe verificare se lo ha fatto, farlo nel tuo metodo onActivityResult
). Siamo in grado di eseguire una query per i dispositivi accoppiati:
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBoundedDevices();
Poi ciclo su di loro: for(BluetoothDevice device : pairedDevices)
e trovare quello che si desidera connettersi.
Una volta trovato un dispositivo, creare un socket per collegarlo:
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(YOUR_UUID);
YOUR_UUID è un oggetto UUID contiene un ID speciale della vostra applicazione. Leggi su di esso here.
Ora, tentativo di connessione (dispositivo che si sta tentando di connettersi a deve avere un socket creato con lo stesso UUID sulle modalità di ascolto):
socket.connect();
connect() blocchi tuo thread fino a quando una connessione è stabilito o si verifica un errore - in questo caso verrà generata un'eccezione. Quindi dovresti chiamare connect
su un thread separato.
E lì! Sei connesso a un altro dispositivo. Ora ottieni i flussi di input e output:
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
e puoi iniziare a inviare/ricevere dati. Tieni presente che entrambe le azioni (invio e ricezione) sono bloccando quindi dovresti chiamarle da thread separati.
Per saperne di più su questo, e scoprire come creare il server (Qui abbiamo creato un client) nella Bluetooth documentation.
grazie, l'ho già implementato nella mia applicazione qualche tempo fa ho capito tutto, tuttavia la tua risposta è molto buona e la segnalo come accettata. – Miky
@Miky puoi mostrarci la tua implementazione – jaimin
@jaimin Spiacente, la connessione Bluetooth automatica non ha mai funzionato soddisfacente per me.Ho dovuto scegliere il WiFi come alternativa. – Miky
- 1. Collegare un dispositivo bluetooth come più dispositivi
- 2. impossibile effettuare la connessione tra 2 dispositivi Android bluetooth
- 3. Ricerca Android per dispositivi Bluetooth
- 4. Connessione automatica Bluetooth con dispositivi accoppiati
- 5. Android Bluetooth accept()/connect() con dispositivi già accoppiati
- 6. elenco dispositivi bluetooth connessi?
- 7. Come recuperare le informazioni sul dispositivo Bluetooth con il selettore di dispositivi Android Bluetooth?
- 8. Adattamento della chat Bluetooth Android per più dispositivi
- 9. Come inviare/ricevere dati via bluetooth android phone a dispositivi medici con bluetooth
- 10. Come abilitare/disabilitare il bluetooth programmaticamente in Android
- 11. Connessione automatica ai dispositivi Bluetooth accoppiati su Android
- 12. Come trovare i dispositivi nell'intervallo utilizzando bluetooth?
- 13. Come cercare periodicamente i dispositivi bluetooth su Android
- 14. Android bluetooth socket.connect() non riesce
- 15. Come utilizzare http/2 con Okhttp su dispositivi Android?
- 16. Come ottenere i dispositivi Bluetooth come elenco?
- 17. (Dis) Collegamento di dispositivi Bluetooth con Windows.Devices.Bluetooth.Rfcomm (WP8.1)
- 18. Comunicazione tra dispositivi tramite Bluetooth utilizzando PhoneGap su Android?
- 19. Come posso unire programmaticamente 2 contatti in Android?
- 20. Android Bluetooth Dove posso ottenere UUID?
- 21. java.lang.SecurityException: BLUETOOTH arresto autorizzazione. (dispositivi Samsung solo)
- 22. non riesco a trovare tutti i dispositivi bluetooth android
- 23. ADB tramite Bluetooth Android
- 24. Uso del Bluetooth nell'emulatore Android
- 25. Android 6 bluetooth
- 26. Esempio Bluetooth Android
- 27. Bluetooth blu: lista dei dispositivi accoppiati
- 28. Dispositivo Bluetooth attualmente connesso Android
- 29. Come collegare MediaPlayer con SurfaceView in Android?
- 30. iPhone: rileva dispositivi bluetooth nelle vicinanze
E 'possibile, dare un'occhiata a: http://developer.android.com /guide/topics/wireless/bluetooth.html –
Al contrario, un'applicazione del genere, ad es. che è costantemente cercapersone per effettuare una connessione, influenzerà negativamente la durata della batteria. Non è una buona idea. –