Кто-нибудь знает какой-либо доступный пример, иллюстрирующий разработку Bluetooth на Android.
Я прочитал учебник здесь , и я все понимаю на этой странице.
Однако, когда речь идет о реализации кода Bluetooth, в приложении необходимо просмотреть пример чата Bluetooth, чтобы понять, как все это работает.
Пример 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, и я прочитал все подробности, доступные на сайте developer.android.com.