Subj : Android JmDNS vs. Android Network Service Discovery
To   : All
From : Nightfox
Date : Thu Jun 09 2022 09:42 am

Recently I've been working on fixing bugs in an Android app, where one of its main functions is to find network-connected printers and print to them. It was originally using the JmDNS library to do the network discovery of printers:
https://github.com/jmdns/jmdns

I've been working on this app for the past few weeks, and suddenly this past Monday, a weird issue started happing - The JmDNS library started to only give an ipv6 network address for our test printer (previously, it had been giving an ipv4 address), and it seemed the ipv6 address it was giving was incorrect, as the app couldn't ping and couldn't otherwise connect to the printer with that address.

I found that Google added a network service discovery API to the Android SDK starting with SDK version 16:
https://developer.android.com/training/connect-devices-wirelessly/nsd
I updated the Android app to use the Android network service discovery API instead of JmDNS, and I found the Android network service discovery returns the correct network address for the printer (and is getting its ipv4 address).  Now the app can connect and print to the printer again.

I'm curious if anyone here has worked with network service discovery and has seen anything weird like the issue I was having?

The office where I work did have a power outage last weekend, and I wonder if that may have affected anything on our network to cause the issue I was seeinig. But it seems like it was purely a software issue, so I don't really know why I started seeing that issue.

Also, I feel like the official Android network service discovery API would probably be better to use than a 3rd-party library, but JmDNS is still in development (the latest version is from August 2021), so I imagine there may be advantages of using it.  I'm wondering why choose something like JmDNS over the Android network service discovery API?

Nightfox

---
� Synchronet � Digital Distortion: digitaldistortionbbs.com