JmDNS: не удается разрешить службу

Я пытаюсь реализовать обнаружение JmDNS для связи между приложением Android и настольным приложением. Я следовал следующему уроку:http://home.heeere.com/tech-androidjmdns.html

Приложение Android регистрирует службу, а приложение для настольного компьютера добавляет прослушиватель для службы. У меня это отлично работает с тремя из четырех моих устройств, но с четвертым (Samsung Galaxy Tab 10.1 PT7500 под управлением Android 3.2) я не могу разрешить службу. Мой обработчик получаетserviceAdded событие, но нетserviceResolved мероприятие. Я тоже пробовал звонитьjmdns.requestServiceInfo а такжеjmdns.getServiceInfo, но первый ничего не делает, а второй отключается и возвращает ноль.

Однако jmdns-browser способен разрешать службу просто отлично, так что это не устройство. На любом из устройств нет брандмауэра. Служба всегда использует адрес IPv4.

У кого-нибудь есть идея, что может вызвать эту проблему?

Код для запуска услуги:

jmdns = JmDNS.create(wifiAddress);

ServiceInfo serviceInfo = ServiceInfo.create(Constants.SERVICE_TYPE, 
    Constants.SERVICE_NAME, Constants.ZEROCONF_PORT, "my service");

HashMap<String, String> deviceInfoMap = new HashMap<String, String>();
deviceInfoMap.put(Constants.KEY_DEVICE_NAME, getDeviceName());
deviceInfoMap.put(Constants.KEY_DEVICE_ID, getDeviceId());
// ...
serviceInfo.setText(deviceInfoMap);

jmdns.registerService(serviceInfo);

Код для клиента / слушателя:

jmdns = JmDNS.create();
jmdns.addServiceListener(Constants.SERVICE_TYPE, serviceListener = new ServiceListener() {
    @Override
    public void serviceResolved(ServiceEvent event) {
        System.out.println("Service resolved: " + event.getName() + 
            " of type " +    event.getType());
    }

    @Override
    public void serviceRemoved(ServiceEvent event) {
        System.out.println("Service removed: " + event.getName() + 
            " of type " + event.getType());
    }

    @Override
    public void serviceAdded(ServiceEvent event) {
        System.out.println("Service added: " + event.getName() + 
            " of type " + event.getType());
        ServiceInfo info = jmdns.getServiceInfo(event.getType(), event.getName());
        System.out.println("Service info: " + info); // --> null
    }
});

Выход:

Service added: my service @ GT-P7500 of type _mytype._tcp.local.
Service info: null
Service added: my service @ Galaxy Nexus of type _mytype._tcp.local.
Service info: [ServiceInfoImpl@183779345 
    name: 'my service @ Galaxy Nexus ._mytype._tcp.local.' 
    address: '/192.168.1.154:4242 ' status: 'DNS: myhost.local. 
    state: probing 1 task: null', has data
    deviceName: Galaxy Nexus
    deviceId: <id>
    displayDensity: XHDPI
] 

Ответы на вопрос(2)

Ваш ответ на вопрос