Използвам стандартни API процедури за свързване към устройство. Конкретно OBDII bluetooth адаптери.
Имам два OBDII bluetooth адаптера, от различни модели. Изпълнявайки абсолютно същия код, първият ще се сдвои и свърже без проблем с всеки телефон/таблет, който съм тествал. Вторият ще се сдвои и ще се свърже добре, освен с моя Nexus 7, работещ с android 4.2
Той хвърля IO изключение: read failed, socket might closed or timeout, read ret: -1
Мислех, че това просто е нещо нередно със самото устройство или с по-новата версия... Но след това друга част от софтуерния „въртящ момент“ може да се свърже към който и да е адаптер от моя Nexus 7.
Така че явно правя нещо нередно/различно, което е проблем само в по-новата ОС???
Всяка помощ за изясняване на това ще бъде високо оценена.
public void run() {
Log.i(TAG, "BEGIN mConnectThread");
setName("ConnectThread");
// Always cancel discovery because it will slow down a connection
mAdapter.cancelDiscovery();
// Make a connection to the BluetoothSocket
try {
// This is a blocking call and will only return on a
// successful connection or an exception
mmSocket.connect(); <=**This is where the exception is thrown
} catch (IOException e) {
Etype = "Connection to: " + mmDevice.getName() + " at: "
+ mmDevice.getAddress() + " failed: " + e.getMessage();
connectionFailed();
// Close the socket
try {
mmSocket.close();
} catch (IOException e2) {
Log.e(TAG, "unable to close() socket during connection failure", e2);
}
// Start the service over to restart listening mode
BluetoothChatService.this.start();
return;
}