Bluetooth-соединение между Android и другим телефоном по профилю Handsfree

Я пытаюсь использовать свой Android-телефон в качестве комплекта громкой связи (например, для автомобилей), чтобы подключиться к другому телефону (любому телефону) и выполнить некоторые функции громкой связи (ответить на входящий звонок, отклонить,.. и т.д.), которые можно выполнить с помощью команд AT для профиля громкой связи.  Для этого я использую хорошо известное приложение для чата Bluetooth и работаю над отражением, чтобы установить соединение с любым устройством:

Метод m = device.getClass(). getMethod ( "createRfcommSocket", новый класс [] {int.class}); tmp = (BluetoothSocket) m.invoke(устройство, 1);

Однако для достижения функциональности handsfree и понимания команд AT, которые я отправляю, подключенный телефон должен находиться над профилем громкой связи, который использует UUID: "0000111f-0000-1000-8000-00805F9B34FB"

Следовательно, есть ли способ достичь соединения с профилем громкой связи?

Спасибо!

Ответ 1

Вы должны использовать этот код только в том случае, если у вас нет другого выбора. 1 в этом коде - это порт RFCOMM. У каждой службы есть собственный порт RFCOMM. Этот порт обычно случайный между 1 и 31. Вам нужно знать, какой порт используется службой (здесь профиль громкой связи) на устройстве, к которому вы хотите подключиться. Для этого вы должны использовать метод createRfcommSocketToServiceRecord из объекта BluetoothDevice:

try {   clientSocket = bluetoothDevice.createRfcommSocketToServiceRecord( serviceUUID ); }
catch (IOException e) 
{
  // handle error
} 

Этот код является правильным способом использования Bluetooth и должен заменить тот, который вы используете.