Android mdnsresponder, использующий собственный API, возвращает kDNSServiceErr_ServiceNotRunning (-65563)
Мы хотим найти сервис с использованием нативного кода. Собственный код находится в динамической библиотеке, которая вызывается из кода ndk. Мы успешно протестировали код на iOS и Mac OS. На андроиде мы сталкиваемся с этой проблемой:
09-14 04:00:48.274 25997-25997/com.my.App W/com.my.App: dnssd_clientstub ConnectToServer: connect()-> No of tries: 1
09-14 04:00:49.274 25997-25997/com.my.App W/com.my.App: dnssd_clientstub ConnectToServer: connect()-> No of tries: 2
09-14 04:00:50.276 25997-25997/com.my.App W/com.my.App: dnssd_clientstub ConnectToServer: connect()-> No of tries: 3
09-14 04:00:51.276 25997-25997/com.my.App W/com.my.App: dnssd_clientstub ConnectToServer: connect() failed path:/var/run/mdnsd Socket:46 Err:-1 Errno:2 No such file or directory
09-14 04:00:51.277 25997-25997/com.my.App W/AppLogic_Cpp: WARNING::Error in MDNS, code: -65563
Я знаю, что эта ошибка означает kDNSServiceErr_ServiceNotRunning
, Мы попытались запустить сервис с Android, как упомянуто здесь: BONJOUR IN ANDROID APPLICATIONS с помощью context.getSystemService(Context.NSD_SERVICE);
но это не решает проблему. Статья нацелена на использование библиотеки непосредственно из Java, что не является тем, чем мы занимаемся, поэтому она применима только частично.
Я также должен уточнить, что мы сами собираем mdnsresponder из кода. Может ли эта проблема быть связана с нашей сборкой?
Даже если я полностью запускаю обнаружение служб в Android с помощью NsdManager
демон не найден / проблема не устранена для собственного кода. NsdManager
находит сервис просто отлично.
Любая помощь будет очень высоко ценится.
Изменить 1: Правописание и некоторые разъяснения о NsdManager
тесты.