Мне удалось создать кросс-компиляцию Bonjour для Android и запустить ее примерно так же, как Apple намеревается запускать на встроенных устройствах, таких как принтеры. Здесь - скрипт сборки.
Здесь - это небольшая удобная оболочка, чтобы заставить ее работать так, как вы ожидаете.
Мы используем слой client_shim из дистрибутива Bonjour, чтобы обернуть весь доступ к встроенной реализации mDNS через обычный API-интерфейс dns_sd.h. Вы не используете идиому с дескрипторами файлов, а выбор - со слоем подкладки.
Уровень client_shim не совсем хорошо поддерживается Apple - на самом деле я нашел опечатки в именах переменных, но тем не менее он работает. Вам нужно будет применить этот патч , чтобы включить правильные заголовочные файлы, исправить опечатки и войти в систему через API-интерфейсы Android.
Еще одна вещь: вам нужно , чтобы получить и удерживать блокировку многоадресной передачи изнутри вашего Java-кода, иначе вы больше никого не найдете. Смотрите пример здесь .
Кроме того, он работает на Android API Level 8, и мы поддерживаем предустановленную библиотеку Bonjour для Android , хотя я не уверен, что это нормально для лицензии.
Отредактировано:
Версия в предварительных сборках - 330.10, более новая версия с client_shim, поскольку статические библиотеки не могут компилироваться с MSVC2010 в Windows, поэтому мы сохранили эту.
Удачи!