Я пытаюсь использовать устройство Android для подключения к устройствам Bluetooth для получения некоторой информации. В частности, я пытаюсь подключиться к наушникам Bluetooth на этом UUID:
"0000111E-0000-1000-8000-00805F9B34FB"
Для этого я создаю сокет и подключаю его к удаленному устройству следующим образом:
public ConnectThread(BluetoothDevice device) {
// Use a temporary object that is later assigned to mmSocket
// because mmSocket is final.
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
BluetoothSocket tmp = null;
mmDevice = device;
try {
// Get a BluetoothSocket to connect with the given BluetoothDevice.
// MY_UUID is the app's UUID string, also used in the server code.
tmp = device.createRfcommSocketToServiceRecord(UUID_HF);
} catch (IOException e) {
Log.e(TAG, "Socket's create() method failed", e);
}
mmSocket = tmp;
}
public void run() {
// Cancel discovery because it otherwise slows down the connection.
bluetoothAdapter.cancelDiscovery();
try {
// Connect to the remote device through the socket. This call blocks
// until it succeeds or throws an exception.
mmSocket.connect();
} catch (IOException connectException) {
// Unable to connect; close the socket and return.
try {
mmSocket.close();
} catch (IOException closeException) {
Log.e(TAG, "Could not close the client socket", closeException);
}
return;
}
// The connection attempt succeeded. Perform work associated with
// the connection in a separate thread.
manageMyConnectedSocket(mmSocket);}
Работает нормально, когда наушники еще не подключены к моему устройству Android. Но происходит то, что наушники автоматически подключаются к моему устройству Android благодаря самой ОС. И в этом случае, когда я выполняю метод mmSocket.connect (), он не возвращается. Я подумал, что, возможно, Android автоматически подключил другой сокет с тем же UUID, и поэтому мой не работает. Как вы думаете, это проблема? И если это так, есть ли способ закрыть все сокеты между моим устройством Android и удаленным устройством Bluetooth? Или, может быть, тот, который мешает моему процессу?
Заранее спасибо.