We have an iOS app that we are re-doing for Android. We typically connect with ZD4xx family printers via wifi, BLE or BT classic, depending on customer requirements. Typically all 3 of those interfaces are active. On iOS we are able to reliably discover and connect to the printers via BLE, but on Android, the connect attempt usually fails. If we disable the BT classic interface on the printer, the BLE connections usually succeed (but that is not a viable solution for us). The behavior is the same with different Android platforms and Android OS versions that we have tried.
Our speculation is that the reason may be that the printer is advertising the BLE and BT classic with the same MAC address on both interfaces, and that this confuses the Android Bluetooth stack. We speculate that if BLE and BT classic were advertising with different MAC addresses, the problem would go away.
Our questions are: Has anyone else has observed this problem? Has anyone found a solution? Is there any way to programmatically set a different MAC address for the two Bluetooth interfaces?
Thank you.
Michael Heins
Hi Michael,
Do you have a test app to share that we can reproduce this problem? We would like to see if this happens during the discovery or happens after connected.
Points: 0
You voted ‘up’
Our Android guy used an Android app called "nRF Connect" to test it independently of our BLE app code.
Points: 0
You voted ‘up’
What specific device and Android version do you use when you observed this problem? I've tried nRF Connect on Zebra TC56 and was able to connect to the ZD410 over BLE straight away.
Points: 0
You voted ‘up’
Hi Steven,
I'm the Android guy referred to previously. I have tested this on the following platforms:
Kindle Fire 7 (Android 5.1.1).
Google Pixel XL (Android 8.1).
Lenovo TB-X103F (Android 6.0).
I initially discovered this when placing our Zebra ZD410 into "Smart Only" mode in the connection parameters and turning off the WiFi. The Zebra Printer Setup app (Android) fails to discover or connect when the connection is forced over BLE (i.e. smart mode).
On a separate note, from nRF Connect I can connect to a printer on all of the platforms listed above fairly regularly when I put the printer into "Smart Only" mode. It seems the problem occurs when both BLE and Classic are enabled for a printer.
Thanks for your help Steven,
Adam Burnett
Points: 0
You voted ‘up’
I am experiencing the same problem with ZQ520. I have tested it across multiple Android devices and if the printer is put into "Low Energy Only" mode all of them are able to connect without any problems. Interestingly, one of my devices (Galaxy S7) is able to connect to the printer in "Classic & Low Energy" mode. According to the system logs the problem is not that Android is not able to open GATT connection to the printer but that BLE service discovery procedure never finishes or returns GATT error 129. Unfortunately "Classic & Low Energy" is a default mode and we have to ask all users of our app to configure their printers before first use. Here is the list of devices I tried:
My printer's serial number is XXRBJ182902108. Is there any information I could provide you to troubleshoot the issue?
Points: 0
You voted ‘up’
Hi Leonid,
Are you experiencing this problem with your own app or with Zebra Setup Utilities app for Android? If it's your app, would you share the app or the trimmed-down version of your app, so that we can reproduce the problem?
Points: 0
You voted ‘up’
Hi Steven,
From what I can gather Zebra Setup Utility app for Android uses classic bluetooth to connect to the printer. If I disable classic bluetooth using Zebra Setup Utility app for Desktop mobile version is not able to connect to the printer. Moreover, you do not need to use my app to reproduce the issue, even BLE Scanner app BLE Scanner - Apps on Google Play , which is pretty popular bluetooth app for Android, fails to discover services when the printer is in "Classic & Low Energy" mode. Interestingly, but we did not have the problem until we had iOS version of our app connected to the printer. It might be some implicit bonding issue but I have already tried to reset all possible communication settings using Zebra Setup Utility for Desktop.
Points: 0
You voted ‘up’
Hi Leonid,
Have you updated your firmware on the printer? This was issue was corrected a year or two ago in the printer firmware. Printers | Support & Downloads | Zebra
Points: 0
You voted ‘up’
Sorry for the delay. I have updated my firmware. Now it is V76.20.15Z, but problem persists.
Points: 0
You voted ‘up’
Just want to clarify that the above statement is not accurate. The Zebra Printer Setup Utilities work with both Bluetooth Classic and Low Energy on the printers. When both Classic and LE are enabled on the printer, the Setup Utilities will use Classic to connect to the printer. When only LE is enabled on the printer, the Setup Utilities will use LE to connect to the printer. We can differentiate whether the Setup Utilities uses Classic or LE by looking at the Bluetooth icon on each entry in the list of discovered printers. If the Bluetooth icon has a "4.0" next to it, this means that the Setup Utilities is using LE to connect to the printer. If there is no "4.0" next to the Bluetooth icon, it means the Setup Utilities uses Classic to connect to the printer.
Points: 0
You voted ‘up’
Sorry for the delay. Thank you for the explanation. If I put my printer into "Low Energy Only" mode Zebra Printer Setup Utility - Apps on Google Play fails to connect to the printer. "Classic & Low Energy" and "Classic Only" modes work just fine.
Points: 0
You voted ‘up’
Hi, I am also having problems when printing from an Android app.
I have my app in a yoga tablet working fine but It does not work with a lenovo tab 10 with android 9.
In each tablet it works fine with print connect
With my lenovo tab 10 I can pair the printer correctly but whenever I want to print it tells me that I need to connect the printer to my device. I go to settings, I select the printer I click in connect but nothing happens
Points: 0
You voted ‘up’
hello,
I have been trying to get my Zebra ZQ520 to connect via Zebra Setup Utilities and I was able to with my Zebra TC77 and Galaxy S7 but not Galaxy XCover Pro and unfortunately our client will be using the Galaxy XCover Pro. I couldn't find a particular reason why the XCoverPro wouldn't work with even the Zebra Setup Utilities, it finds it just find via the Android bluetooth and have tried class/btl and both settings.
Any way to get the XCover Pro to work with ZSU? This is the first step before we decide to create our own app and use the supplied APIs via Link-OS
Points: 1
You voted ‘up’
Log in to post comments