На данный момент я разрабатываю новое приложение для Android. Мне требуется Bluetooth для этого приложения. Каждый раз, когда я хочу подключить два (парных) устройства через систему serverocket/socket, я не могу создать рабочий сокет. Он всегда возвращает:Какой UUID должен быть выбран для подключения Bluetooth на Android
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
Так что мой вопрос: пользуюсь ли я неправильным UUID? Если это не так. Есть ли у вас какие-либо другие предложения, что может быть неправильным?
public Accept(BluetoothAdapter bt, BluetoothDevice device, Context context) {
try {
BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
BluetoothServerSocket tmp = null;
try {
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00294F9B3423");
//Here is the point when it doesn't work...
tmp = bt.listenUsingRfcommWithServiceRecord(context.getResources().getString(R.string.bt_string_for_profile_image), uuid);
} catch (Exception e) {
}
mmServerSocket = tmp;
bt_device = device;
} catch (Exception e) {
}
}
Благодарим за помощь.
Прежде всего: Благодарим вас за ответ. Но мне жаль говорить, что это не решило мою проблему. Я, вероятно, не дал вам достаточно кода. Мой код выглядит так же, как тот, который вы видите здесь: [link] (https://developer.android.com/guide/topics/connectivity/bluetooth.html#ConnectingAsAServer). Поэтому я обрабатываю его как Thread. И я вызываю метод accept() - Methode в методе run() этого потока. – Swittmann
Но как только я назову этот метод bt.listenUsingRfcommWithServiceRecord (context.getResources(). GetString (R.string.bt_string_for_profile_image), uuid); канал thr serversocket равен -1, поэтому я думаю, что это проблема с этим методом? – Swittmann
Ohhh .. Извините, я не знал вашего полного кода ... Теперь, первое, что вы можете сделать здесь, это проверить код ошибки/исключение, возвращаемое функцией прослушивания. Это поможет нам понять причину ошибки. Когда я прочитал ссылку, предоставленную вами, слушание может исключать исключение только в таких случаях: «при ошибке, например, Bluetooth недоступен или недостаточно разрешений или используемого канала». – aksonlyaks