Intereting Posts
Импортирование библиотеки игровых сервисов Google для мобильных объявлений Проблемы с использованием API Java EWS на Android Повысьте производительность webView (должна быть такая же производительность, что и собственный веб-браузер) SSL через Bluetooth на Android Android – Как добавить собственный аудиокодек в AudioRecord? Ошибка приложения Android – Дубликат id 0x7f04000f, тег null или родительский идентификатор 0x0 с другим фрагментом для com.google.android.gms.maps.SupportMapFragment TypeError: undefined не является функцией (оценка «remoteModules.forEach») Обнаруживать все события касания без переопределения dispatchTouchEvent ()? Что такое (s / g) etFreezesText в TextView? Java.lang.NoClassDefFoundError: android.support.v4.view.LayoutInflaterCompatHC в Android Studio Eclipse – плагин ADT не автозаполнение Java.lang.String не может быть добавлен в com.example.expandablelistview.NewsItem Android – Активность против ListActivity – Какой должен быть класс активности? Автоматическое тестирование модулей для Android / Ant Показывать закусочную для события click menu в Android

Примеры Bluetooth для Android

Кто-нибудь знает о каком-либо примере, который иллюстрирует разработку Bluetooth на Android.

Я прочитал учебник здесь, и я все понимаю на этой странице.

Однако, когда дело доходит до внедрения кода Bluetooth, в приложение необходимо просмотреть пример Bluetooth Chat, чтобы понять, как все это работает.

Пример Bluetooth Чат здесь

Этот пример хорош, но его также сложно понять, потому что каждое устройство изначально настроено на сервер.

Кто является сервером и оба устройства отправляют серверные сокеты до тех пор, пока не сканирует одно устройство?

Как только устройство становится видимым, становится ли оно сервером?

Когда начинается действие OnResume, поскольку после запуска и инициализации mChatService в SetupChat устройство запустит поток Accept.

Ниже приведены некоторые примеры кода, и выше доступна ссылка на полный Bluetooth-чат.

@Override public synchronized void onResume() { super.onResume(); if(D) Log.e(TAG, "+ ON RESUME +"); // Performing this check in onResume() covers the case in which BT was // not enabled during onStart(), so we were paused to enable it... // onResume() will be called when ACTION_REQUEST_ENABLE activity returns. if (mChatService != null) { // Only if the state is STATE_NONE, do we know that we haven't started already if (mChatService.getState() == BluetoothChatService.STATE_NONE) { // Start the Bluetooth chat services mChatService.start(); } } } private void setupChat() { // Initialize the BluetoothChatService to perform bluetooth connections mChatService = new BluetoothChatService(this, mHandler); // Initialize the buffer for outgoing messages mOutStringBuffer = new StringBuffer(""); } /** * Start the chat service. Specifically start AcceptThread to begin a * session in listening (server) mode. Called by the Activity onResume() */ public synchronized void start() { if (D) Log.d(TAG, "start"); // Cancel any thread attempting to make a connection if (mConnectThread != null) {mConnectThread.cancel(); mConnectThread = null;} // Cancel any thread currently running a connection if (mConnectedThread != null) {mConnectedThread.cancel(); mConnectedThread = null;} setState(STATE_LISTEN); // Start the thread to listen on a BluetoothServerSocket if (mSecureAcceptThread == null) { mSecureAcceptThread = new AcceptThread(true); mSecureAcceptThread.start(); } if (mInsecureAcceptThread == null) { mInsecureAcceptThread = new AcceptThread(false); mInsecureAcceptThread.start(); } } 

То, что я прошу, касается любых примеров Bluetooth, которые легче понять, и примеров, которые четко разделяют серверную и клиентскую стороны Bluetooth. У меня есть Google'd, и я прочитал все детали, доступные на сайте developer.android.com.

Из того, что я собрал, различие: сервер и клиент существуют только при установлении соединения Bluetooth (т. Е. Во время процесса обнаружения и сопряжения). Для установления соединения одно устройство действует как сервер (с использованием экземпляра класса BluetoothServerSocket), а другое действует как клиент (с использованием экземпляра класса BluetoothSocket). Сервер (действующий) прослушивает входящие запросы, а клиент запрашивает, чтобы прослушивающие серверы подключались. После установления соединения (см. Подробности методов, используемых в Android Dev Guide), оба (изначально называемые) сервера и клиента взаимодействуют только с объектом BluetoothSocket. Таким образом, такого различия между сервером и клиентом не существует.

Вы можете проверить код примера Bluetooth Chat в руководстве Dev, особенно в классе BluetoothChatService. Вызов метода createRfcommSocketToServiceRecord () возвращает BluetotohSocket на устройство прослушивания (сервера). Запрашивающее устройство (клиент), поскольку оно использует аналогичный объект.

Правда, дополнительные примеры кода были бы более приятными.