- Bluetooth RFCOMM / SDP connection to a RS232 adapter in android
- How can one connect to an rfcomm device other than another phone in Android?
- Bluetooth RFCOMM / SDP подключение к адаптеру RS232 в Android
- Как можно ли подключиться к устройству rfcomm, отличному от другого телефона в Android?
- Android Question Wich Rs232 Bluetooth converter for B4A ?
- hatzisn
- [US$16.99 19% OFF] RS232 Bluetooth Serial Adapter Board Communication Master Slave 2 Modes Mini USB Bluetooth Serial Port Profile Module 5V Πίνακας ενότητας from Ηλεκτρονικά εξαρτήματα & αναλώσιμα on banggood.com
Bluetooth RFCOMM / SDP connection to a RS232 adapter in android
I am trying to use the Bluetooth Chat sample API app that google provides to connect to a bluetooth RS232 adapter hooked up to another device. Here is the app for reference: http://developer.android.com/resources/samples/BluetoothChat/index.html And here is the spec sheet for the RS232 connector just for reference: http://serialio.com/download/Docs/BlueSnap-guide-4.77_Commands.pdf Well the problem is that when I go to connect to the device with:
mmSocket.connect(); (BluetoothSocket::connect())
I always get an IOException error thrown by the connect() method. When I do a toString on the exception I get «Service discovery failed». My question is mostly what are the cases that would cause an IOException to get thrown in the connect method? I know those are in the source somewhere but I don’t know exactly how the java layer that you write apps in and the C/C++ layer that contains the actual stacks interface. I know that it uses the bluez bluetooth stack which is written in C/C++ but not sure how that ties into the java layer which is what I would think is throwing the exception. Any help on pointing me to where I can try to dissect this issue would be incredible. Also just to note I am able to pair with the RS232 adapter just fine but I am never able to actually connect. Here is the logcat output for more reference:
I/ActivityManager( 1018): Displayed activity com.example.android.BluetoothChat/.DeviceListActivity: 326 ms (total 326 ms) E/BluetoothService.cpp( 1018): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) D/BluetoothChat( 1729): onActivityResult -1 D/BluetoothChatService( 1729): connect to: 00:06:66:03:0C:51 D/BluetoothChatService( 1729): setState() STATE_LISTEN -> STATE_CONNECTING E/BluetoothChat( 1729): + ON RESUME + I/BluetoothChat( 1729): MESSAGE_STATE_CHANGE: STATE_CONNECTING I/BluetoothChatService( 1729): BEGIN mConnectThread E/BluetoothService.cpp( 1018): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) E/BluetoothEventLoop.cpp( 1018): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/1498/hci0/dev_00_06_66_03_0C_51 I/BluetoothChatService( 1729): CONNECTION FAIL TOSTRING: java.io.IOException: Service discovery failed D/BluetoothChatService( 1729): setState() STATE_CONNECTING -> STATE_LISTEN D/BluetoothChatService( 1729): start D/BluetoothChatService( 1729): setState() STATE_LISTEN -> STATE_LISTEN I/BluetoothChat( 1729): MESSAGE_STATE_CHANGE: STATE_LISTEN V/BluetoothEventRedirector( 1080): Received android.bleutooth.device.action.UUID I/NotificationService( 1018): enqueueToast pkg=com.example.android.BluetoothChat callback=android.app.ITransientNotification$Stub$Proxy@446327c8 duration=0 I/BluetoothChat( 1729): MESSAGE_STATE_CHANGE: STATE_LISTEN E/BluetoothEventLoop.cpp( 1018): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/1498/hci0/dev_00_06_66_03_0C_51 V/BluetoothEventRedirector( 1080): Received android.bleutooth.device.action.UUID
The device I’m trying to connect to is the 00:06:66:03:0C:51 which I can scan for and apparently pair with just fine. The below is merged from a similar question which was successfully resolved by the selected answer here:
How can one connect to an rfcomm device other than another phone in Android?
The Android API provides examples of using listenUsingRfcommWithServiceRecord() to set up a socket and createRfcommSocketToServiceRecord() to connect to that socket. I’m trying to connect to an embedded device with a BlueSMiRF Gold chip. My working Python code (using the PyBluez library), which I’d like to port to Android, is as follows:
sock = bluetooth.BluetoothSocket(proto=bluetooth.RFCOMM) sock.connect((device_addr, 1)) return sock.makefile()
. so the service to connect to is simply defined as channel 1, without any SDP lookup. As the only documented mechanism I see in the Android API does SDP lookup of a UUID, I’m slightly at a loss. Using «sdptool browse» from my Linux host comes up empty, so I surmise that the chip in question simply lacks SDP support.
Bluetooth RFCOMM / SDP подключение к адаптеру RS232 в Android
Я пытаюсь использовать приложение API для примера Bluetooth Chat, которое Google предоставляет для подключения к адаптеру bluetooth RS232, подключенному к другому устройству. Вот приложение для справки: http://developer.android.com/resources/samples/BluetoothChat/index.html И вот спецификация для разъема RS232 только для справки: http://serialio.com/download/Docs/BlueSnap-guide-4.77_Commands.pdf Ну, проблема в том, что когда я иду подключиться к устройству с помощью:
mmSocket.connect(); (BluetoothSocket::connect())
Я всегда получаю ошибку IOException , вызванную методом connect() . Когда я делаю toString для исключения, я получаю сообщение об ошибке «Обнаружение службы». Мой вопрос в основном состоит в том, что может привести к тому, что IOException получит метод соединения? Я знаю, что они где-то в источнике, но я точно не знаю, как слой java, на котором вы пишете приложения, и уровень C/С++, содержащий фактический интерфейс стеков. Я знаю, что он использует синий bluetooth-стек, который написан на C/С++, но не уверен, как это связано с слоем java, и это то, что я думаю, бросает исключение. Любая помощь в том, чтобы указывать мне, где я могу попытаться проанализировать эту проблему, будет невероятной. Также просто отметить, что я могу просто подключиться к адаптеру RS232, но я никогда не могу подключиться к нему. Вот вывод logcat для дополнительной справки:
I/ActivityManager( 1018): Displayed activity com.example.android.BluetoothChat/.DeviceListActivity: 326 ms (total 326 ms) E/BluetoothService.cpp( 1018): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) D/BluetoothChat( 1729): onActivityResult -1 D/BluetoothChatService( 1729): connect to: 00:06:66:03:0C:51 D/BluetoothChatService( 1729): setState() STATE_LISTEN -> STATE_CONNECTING E/BluetoothChat( 1729): + ON RESUME + I/BluetoothChat( 1729): MESSAGE_STATE_CHANGE: STATE_CONNECTING I/BluetoothChatService( 1729): BEGIN mConnectThread E/BluetoothService.cpp( 1018): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) E/BluetoothEventLoop.cpp( 1018): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/1498/hci0/dev_00_06_66_03_0C_51 I/BluetoothChatService( 1729): CONNECTION FAIL TOSTRING: java.io.IOException: Service discovery failed D/BluetoothChatService( 1729): setState() STATE_CONNECTING -> STATE_LISTEN D/BluetoothChatService( 1729): start D/BluetoothChatService( 1729): setState() STATE_LISTEN -> STATE_LISTEN I/BluetoothChat( 1729): MESSAGE_STATE_CHANGE: STATE_LISTEN V/BluetoothEventRedirector( 1080): Received android.bleutooth.device.action.UUID I/NotificationService( 1018): enqueueToast pkg=com.example.android.BluetoothChat [email protected] duration=0 I/BluetoothChat( 1729): MESSAGE_STATE_CHANGE: STATE_LISTEN E/BluetoothEventLoop.cpp( 1018): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/1498/hci0/dev_00_06_66_03_0C_51 V/BluetoothEventRedirector( 1080): Received android.bleutooth.device.action.UUID
Устройство, к которому я пытаюсь подключиться, — это 00:06:66:03:0C:51 , который я могу сканировать и, по-видимому, с ним просто отлично. Ниже приведено совпадение с аналогичным вопросом, который был успешно разрешен выбранным ответом здесь:
Как можно ли подключиться к устройству rfcomm, отличному от другого телефона в Android?
В Android API приведены примеры использования listenUsingRfcommWithServiceRecord() настроить сокет и createRfcommSocketToServiceRecord() для подключения к этому сокету. Я пытаюсь подключиться к встроенному устройству с BlueSMiRF Gold. Мой рабочий код Python (с помощью библиотеки PyBluez), которую я хотел бы портировать на Android, выглядит следующим образом:
sock = bluetooth.BluetoothSocket(proto=bluetooth.RFCOMM) sock.connect((device_addr, 1)) return sock.makefile()
. поэтому услуга подключения к сети просто определяется как канал 1 без поиска SDP. Как единственный документированный механизм, который я вижу в Android API, выполняет поиск SDP UUID, я немного не понимаю. Использование «sdptool browse» с моего Linux-хоста становится пустым, поэтому я предполагаю, что чип, о котором идет речь, просто не имеет поддержки SDP.
Android Question Wich Rs232 Bluetooth converter for B4A ?
I have a gps with rs232 output on db9 connector
I would like to ‘read’ the information coming from the gps with an Android smartphone, creating a B4A program for inserting some particular functions
Can you recommend a rs232 to bluetooth converter that is ‘seen’ correctly by the code of a B4A program?
hatzisn
Well-Known Member
[US$16.99 19% OFF] RS232 Bluetooth Serial Adapter Board Communication Master Slave 2 Modes Mini USB Bluetooth Serial Port Profile Module 5V Πίνακας ενότητας from Ηλεκτρονικά εξαρτήματα & αναλώσιμα on banggood.com
RS232 Bluetooth Serial Adapter Board Communication Master Slave 2 Modes Mini USB Bluetooth Serial Port Profile Module 5V
m.banggood.com
But you can build your own:
Pay attention to handshake and null configuration with software «handshake».
I would use an esp8266 possibly with LLT if the voltage levels were more than 3,3V and post the received bytes to mqtt broker.
DHQI.gr Nikolaos Hatzistelios — Add In App Purchases to both your B4A & B4i apps ON THE FLY — Click here
Github
My contributions to the community
Living by and taking advantage of God’s laws of physics not considering what they are grants you the title of blind — Time to analyze, time to consider, time to patch, time to change — Having the mind of a Lamborghini and the ethics of a tricycle is no good for everyone — Promo ticket to use for humanity application: i6-psy