Pracuję nad aplikacją, która powinna automatycznie łączyć 2 urządzenia z systemem Android przez Bluetooth. Załóżmy, że są już sparowane. Czy można to osiągnąć?Jak programowo podłączyć 2 urządzenia z systemem Android przez Bluetooth?
Odpowiedz
Oczywiście jest to możliwe. Zrobię krótki instruktaż z dokumentacji:
Zacznij od BluetoothAdapter - to jest twój menedżer Bluetooth.
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Jeśli bluetoothAdapter
jest zerowy, to znaczy, że to urządzenie z Androidem nie obsługuje Bluetooth (Nie ma radia Bluetooth. Chociaż myślę, że rzadko zdarza się spotkać tych urządzeń ...)
Następnie upewnij się, Bluetooth jest włączony:
if (!bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, request_code_for_enabling_bt);
}
Jeśli nie jest on, rozpoczynamy działalność, która pyta użytkownika, aby ją włączyć.
Załóżmy, że użytkownik aktywował (domyślam się, że powinien to sprawdzić, zrób to w swojej metodzie onActivityResult
). Możemy zapytać o sparowanych urządzeń:
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBoundedDevices();
Następnie w pętli nad nimi: for(BluetoothDevice device : pairedDevices)
i znaleźć taki, który chcesz połączyć.
Po znalezieniu urządzenia, utwórz go podłączyć do gniazda:
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(YOUR_UUID);
YOUR_UUID jest obiektem UUID zawierający specjalny identyfikator aplikacji. Przeczytaj o tym here.
Teraz próba połączenia (Urządzenie próbujesz połączyć się musi mieć gniazdo utworzone z tym samym UUID w trybie słuchania):
socket.connect();
connect() bloki swój wątek aż do połączenia zostanie ustanowiony lub wystąpi błąd - w tym przypadku zostanie zgłoszony wyjątek. Więc powinieneś zadzwonić pod numer connect
w osobnym wątku.
I tam! Jesteś podłączony do innego urządzenia. Teraz pobierz strumienie wejściowe i wyjściowe:
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
i możesz rozpocząć wysyłanie/odbieranie danych. Pamiętaj, że obie akcje (wysyłanie i odbieranie) to blokowanie, więc powinieneś zadzwonić do nich z oddzielnych wątków.
Czytaj więcej na ten temat oraz dowiedzieć się, jak stworzyć serwer (Tutaj stworzyliśmy klient) w Bluetooth documentation.
dziękuję, już to zaimplementowałem w mojej aplikacji jakiś czas temu wymyśliłem to wszystko, jednak twoja odpowiedź jest bardzo dobra i zaznaczam ją jako zaakceptowaną. – Miky
@Miky możesz pokazać nam swoją implementację – jaimin
@jaimin Niestety automatyczne połączenie Bluetooth nigdy nie działało dla mnie satysfakcjonująco.Musiał wybrać WiFi jako alternatywę. – Miky
- 1. Jak programowo sprawdzić stan połączenia urządzenia Bluetooth w systemie Android?
- 2. Orientacja urządzenia z systemem Android
- 3. Jak sparować urządzenie Bluetooth programowo? Android
- 4. Czy istnieje sposób na podłączenie urządzenia z systemem Android do zewnętrznej drukarki przez Bluetooth?
- 5. Jak określić prędkość urządzenia z systemem Android?
- 6. Android przykładowy kod bluetooth, aby wysłać prosty ciąg przez bluetooth
- 7. Programowo podłącz się do zestawu słuchawkowego Bluetooth z aplikacji Android.
- 8. Android - jak drukować z urządzenia z systemem Android?
- 9. Komunikuj się z urządzeniem z systemem Android przez urządzenia NodeJS i Termux
- 10. Jak wydrukować obraz i niektóre dane z urządzenia z systemem Android za pomocą drukarki (drukowanie przez bluetooth)?
- 11. Jak podłączyć dwa urządzenia z Androidem przez gniazdo bez serwera
- 12. Jak używać urządzenia z systemem Android jako zestawu słuchawkowego Bluetooth do innego telefonu komórkowego?
- 13. Android Znajdź UUID określonego urządzenia Bluetooth
- 14. Połącz niską energię bluetooth iBeacon z systemem Android 4.3
- 15. Jak znaleźć adres IP LAN urządzenia z systemem Android?
- 16. używać urządzenia z systemem Android jako zestawu słuchawkowego dla innego urządzenia
- 17. Jak pobrać bazę danych SQLite z urządzenia z systemem Android?
- 18. Android: uzyskiwanie dostępu do urządzenia bluetooth
- 19. Jak programowo wyczyścić pamięć podręczną nazw Bluetooth w systemie Android?
- 20. Debugowanie urządzenia Android Wear przez USB
- 21. Jak odczytać informacje z podstawowego urządzenia bluetooth
- 22. Transfer plików przez Bluetooth Android
- 23. Obsługa nowego urządzenia Bluetooth w systemie Android
- 24. Jak sprawdzić użycie GPU urządzenia z systemem Android?
- 25. Jak uzyskać rozdzielczość ekranu urządzenia z systemem Android ..?
- 26. Jak śledzić pozycję urządzenia z systemem Android w budynku?
- 27. Jak zbudować FFMPEG dla całej architektury urządzenia z systemem Android?
- 28. Podłączanie do wbudowanego urządzenia Bluetooth z urządzenia z Androidem
- 29. Zużycie systemu Android: jak obsługiwać istniejącą aplikację na urządzenia z systemem Android
Jest to możliwe, rzucić okiem na: http://developer.android.com /guide/topics/wireless/bluetooth.html –
Z drugiej strony, taka aplikacja, np. ciągłe przywoływanie w celu nawiązania połączenia będzie miało negatywny wpływ na żywotność baterii. To nie jest dobry pomysł. –