Как видно из названия, мне трудно посылать некоторые данные через Bluetooth на мой компьютер. Я пытаюсь установить соединение с моим телефоном Android в качестве клиента и моим ПК в качестве сервера. Когда я пытаюсь установить соединение через BluetoothSocket.connect (), мой телефон запрашивает пин-код. После входа в него мой компьютер также запрашивает тот же вывод, но перед тем, как я могу его ввести, метод connect () вызывает исключение IOException. Я предполагаю, что метод connect () - истекает, прежде чем я могу ввести правильный пин-код на моем ПК, но как я могу заставить его ждать достаточно долго, чтобы я мог ввести PIN-код?
РЕДАКТИРОВАТЬ: после повторного сопряжения ПК с моим телефоном это работало, потому что диалоговое окно сопряжения больше не появляется в моем приложении. Если я отсоединяю компьютер от компьютера и запускаю свое приложение, диалоговое окно сопряжения появляется, но исчезает через несколько секунд, и сокет выдает исключение («сброс соединения по пиру»). Видимо, соединение сбрасывается до того, как будет выполнено сопряжение, но почему?
Вот мой код:
private void connectToDevice(BluetoothDevice device)
{
mBluetoothAdapter.cancelDiscovery();
BluetoothSocket socket = null;
try
{
socket = device.createRfcommSocketToServiceRecord(UUID.fromString("00001101- 0000- 1000-8000-00805F9B34FB"));
}
catch (IOException e)
{
Log.e("HeliRemote", "Couldn't get socket.");
return;
}
try
{
socket.connect();
}
catch (IOException e)
{
try
{
socket.close();
}
catch (IOException e1)
{
Log.e("HeliRemote", "Couldn't close connection");
}
// That's the message I get in LogCat
Log.e("HeliRemote", "Couldn't connect to Socket.");
return;
}
Log.i("HeliRemote", "connected.");
}
Я был бы рад, если бы кто-нибудь дал мне несколько хороших советов относительно этой проблемы.