Hello and thank you for reading the post.
We have an Android application built using Xamarin which prints on a Zebra ZQ510. The application targets min API of 26 and max of 29. We had deployed the app to inexpensive BLU phones API 28 and all was working well. (Using Visual Studio 2022)
We deployed same app to a new tablet device DigiLand API 29 and the printing stopped working, unable to discover device.
We noticed that our LinkOS version is 1.2 and the latest is 2.15. I think this is where the problem, at least its the only NuGet package NOT up to date.
Our questions:
1. Is the reason our app no longer works on API 29 because of LinkOS 1.2?
2. Is there a migration path or documentation for LinkOS 1.2 to 2.15?
Much thanks in advance
Aditya
9 Replies
If the app is targeted for Android 10 or higher (i.e., API level 29 or higher), the ACCESS_FINE_LOCATION permission must be declared in the manifest file and the permission is requested explicitly as well in order for the Bluetooth discovery to work. See this article for detail - Link-OS SDK for Android | Permissions and Bluetooth API.
Thank you, I tried ACCESS_FINE_LOCATION and there was no change. Calling method FindBluetoothPrinters does not result in any found printers.
Your app also needs to explicitly request the permission from the user. After the user grants the permission, then the Bluetooth discovery would work. Check the Android documentation on how to request the permission explicitly.
Yes, good point. We updated the permission in code as well to make sure we explicitly ask for AccessFine as well. The code started to work on API 30 but not the Digiland Tablet API 29. It may be worth noting the Tablet does not have a phone; I don't know if that matter.
It should work with the API level 29. Looks like the Digiland tablet may have a different way to manage the user permission. Go to the Settings -> Apps on the tablet and select your app. Then click on the Permissions to verify and grant the location permission from there.
I took a picture of that screen and uploaded it to this case. It looks like the permissions is there unless I'm missing something.
The screenshot does show the permissions are already granted. If the Digiland tablet is the only device that has problem to discover the Bluetooth printers, then it could be a device specific issue.
I'll contact the manufacture.
Lastly, should we move to 2.15? Also, the lib doesn't seem to be updated since 2018. Is there a roadmap for this library?
Yes, it's recommended to update the SDK to the latest. Please download the latest SDK from LINK-OS MULTIPLATFORM SDK DOWNLOADS & SUPPORT. Apparently, there is no plan for new releases unless major incompatibility issues arise.