Подключить к прибору для измерения артериального давления A&D UA-767PBT

Мне нужно провести измерения от A&D Medical UA-767PBT (без окончания «C») до простого приложения для Android. UA-767PBT использует SDP и SPP для связи с точкой доступа (мой планшет Android). У меня есть имя службы, фильтр трески и пин-код. Я использовал пример BluetoothChat в качестве отправной точки, я изменил «listenUsingRfcommWithServiceRecord», указав правильное имя службы, SPP UUID и установил пин-код с отражением, но приложение все еще говорит «Невозможно подключиться к устройству». Я прочитал здесь Не могу принять входящий Bluetooth подключение, если устройство не обнаруживается что-то о проблеме с портом, но я не знаю, как это сделать.

Кто-то смог подключиться к этому устройству и дать мне подсказку/пример, пожалуйста?

спасибо

P.S. Я только что легко подключился к A&D UA-767PBT-C.

П.П.С. и извините за мой английский :D


person user261591    schedule 05.06.2014    source источник


Ответы (1)


Вы должны находиться в режиме обнаружения при первой попытке подключения к UA-767PBT. После включения bluetooth вставьте этот код в onCreate():

Intent discoverableIntent = new  
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
startActivity(discoverableIntent);

Это переведет ваше устройство в режим обнаружения без ограничений по времени. Вы также можете сделать это прямо в настройках вашего устройства: Настройки->Bluetooth->(меню вверху справа)Время ожидания видимости->Никогда не истекает

После этого вам нужно создать BluetoothServerSocket, используя «listenUsingRfcommWithServiceRecord» с правильными параметрами, как вы сказали, а затем принять соединение следующим образом:

 BluetoothSocket socket = null;
 socket = yourServerSocket.accept();

Я делаю это в отдельной теме. Надеюсь, что это поможет вам!

person user3726420    schedule 02.09.2014
comment
Привет, для меня это не работает таким образом. Он работает только при первом подключении к устройству, все остальные разы не работает. Я заметил, что, вероятно, это какая-то проблема с выделенным портом. Вы уверены, что у вас PBT, а не PBT-C? - person user261591; 03.09.2014
comment
Да, почти уверен :) Я обнаружил, что проблема с несколькими подключениями заключалась в том, что я закрывал serverSocket после подключения. На самом деле, это устройство, кажется, постоянно подключается и отключается ... поэтому я просто оставил серверный сокет открытым, и у меня больше не было проблем. Чтобы лучше объяснить, ссылаясь на сайт разработчика, не вызывайте mmServerSocket.close(); Попробуйте этот способ и дайте мне знать! - person user3726420; 04.09.2014
comment
Привет, спасибо за ответы! проблема в том, что устройство не подключается к серверу :D Я открываю сервер с помощью listenusingrfcomm и т. д., и устройство подключается к серверу (не всегда...). Но если я перезапущу приложение и открою тот же сервер с теми же атрибутами, устройство больше не сможет установить соединение! Я закрываю сокет сервера только в конце всего, после того, как я проведу измерение (ЕСЛИ я проведу измерение XD) - person user261591; 05.09.2014