2013-06-16 4 views
0

Я работаю над приложением Bluetooth и просто понял, что BluetoothSocket.isConnected() был добавлен в API Level 14 (Android 4.0) и отсутствует в API Level 8.0 (Android 2.3.4)BluetoothSocket.isConnected() недоступен на Android 2.3.4

Единственный способ, которым я могу думать о сохранении вкладок в этом, - это булевский флаг в самом действии, который установлен в true, если соединения преуспевают. Но с аппаратной точки зрения, я не думаю, что это так же надежно, как isConnected(). Есть ли другой способ достичь того же?

PS: Приложение, над которым я работаю, должно быть совместимо с Android 2.2 и выше.

EDIT: Я использую булевский флаг, чтобы отслеживать его на данный момент, и он отлично работает. Но был бы рад узнать, есть ли другой способ получить статус соединения.

+0

Может быть, 'BluetoothSocket.getRemoteDevice()' поможет? Подключено, если возвращает экземпляр «BluetoothDevice», иначе не подключенный. – ozbek

+0

@shoerat: Спасибо, однако, 'getRemoteDevice()' возвращает объект «null», если сокет никогда не был подключен, но не возвращает объект «null» после «BluetoothSocket.close()». Не так надежно, как 'BluetoothSocket.isConnected()' –

ответ

1

Функция isConnected() в последней версии android - это просто поле, которое возвращает одну из следующих констант.

SocketState.CLOSED SocketState.INIT SocketState.LISTENING SocketState.CONNECTED

Так он работает практически так же, как и ваш булевой флаг.

Смежные вопросы