RFID получает последовательное соединение в BluetoothSocket

Я пытаюсь подключиться к считывающему устройству RFID. Я могу подключиться к нему, создав BluetoothSocket и вызвав соединение с ним, как показано ниже (многие детали опущены):

public static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");   
BluetoothSocket socket = device.createRfcommSocketToServiceRecord( MY_UUID);

Это работает, как и ожидалось, и соединение с устройством может быть установлено.

Моя проблема в том, что API устройства предназначен для работы с последовательным портом. Чтобы использовать API, я должен передать ему строку, которая выглядит так:

String uri = "eapi:///com1";

Android, похоже, не открывает последовательный порт для всего мира таким образом. В Linux я ожидаю, что смогу подключиться к строке, например:

String uri = "eapi:///dev/ttyS0";

Просмотр каталога /dev на телефоне ничего подобного не показывает. Кроме того, записи в /dev не меняются, когда я устанавливаю соединение. Это наводит меня на мысль, что Android не создает последовательное устройство в /dev при подключении к устройству Bluetooth.

Как я могу получить доступ к COM-порту, который BluetoothSocket использует для подключения к устройству? Есть ли виртуальное устройство, такое как com1 или /dev/ttyS0 на Android?

В старых версиях API, использующих класс RfcommSocket, были методы getPort() и getFileDescriptor(), которые могли бы мне помочь. Текущий разъем Bluetooth, кажется, скрывает эти детали.

Заранее спасибо!

Редактировать: Оказывается, Android просто не создает виртуальное устройство для последовательного потока. Вместо этого я напрямую интегрировал свой клиентский код с bluetoothsocket.


person kmac.mcfarlane    schedule 15.03.2012    source источник


Ответы (1)


Что ж, если у вас есть необработанный разъем Bluetooth и он подключен, почему бы просто не обработать форматирование/преобразование данных вручную в своем коде и не отправить его другой стороне без последовательного потока? Операционная система Android поддерживает ограниченное количество профилей Bluetooth.

person Naeem A. Malik    schedule 15.05.2014