I\'m working with a Droid / Android 2.0.1 and encountering an issue apparently many people have: I\'m unable to discover services using the one pure-Java zeroconf library I
I managed to cross-compile Bonjour for Android and get it running much the same way Apple intends it to run on embedded devices like printers. Here is the build script.
Here is a small convenience wrapper to get it working as you'd expect.
We are using the client_shim layer from the Bonjour distribution to wrap all access to the embedded mDNS implementation via the usual dns_sd.h API. You do not use the idiom with the filehandles and the select with the shim layer.
The client_shim layer is not exactly good supported by Apple - in fact I found typos in variable names, but it is working nevertheless. You will need to apply this patch to include the correct header files, fix the typos and get logging via the Android APIs.
One more thing: You need to acquire and hold the MultiCast Lock from within your Java code, otherwise you won't find anybody else. See the example here.
Other than that, I have it working on Android API Level 8 and we are maintaining a prebuilt library of Bonjour for Android, though I am not sure whether this is ok as per license.
Edited:
The version in the prebuilts is 330.10, newer ones with client_shim as static libraries fail to compile with MSVC2010 on windows, so we kept this one.
Good Luck!