2013-07-17 1 views
3

Android 기기 (Galaxy Nexus)의 클라이언트 앱에서 로컬 네트워크에있는 MacBook Pro에서 Bonjour 서비스가 실행 중입니다.Bonjour 서비스 검색이 Android API로 완료되지 않았습니다. 나는 뭔가를 놓치고 있습니까, 아니면 그냥 JmDNS를 사용해야합니까?

나는 Bonjour 서비스 검색을 두 가지 방법으로 구현했습니다. 첫 번째는 Android의 NSD 패키지를 통해 이루어지며 자세한 내용은 here입니다. "네트워크상의 서비스 발견"절에서 제안한 코드를 구현했습니다. 그것은 내 서비스를 잘 발견하지만 그 서비스에 대한 txt 레코드에 액세스하는 API 호출이 없으므로 액세스 할 필요가 있습니다. 그래서 서비스에 대한 URL을 만들 수 있습니다.이 메서드는 일종의 deal-breaker가 될 때까지 그것을 액세스 할 수 있습니다.

이렇게하면 Bonjour 서비스 검색의 다른 방법 인 here을 "Discover Discover Services"섹션에 시도하게되었습니다. 여기에는 txt 레코드 검색을위한 API가 있으므로 오류를 로깅하지 않기 때문에 서비스 검색이 시작된다는 것을 알고 있지만,이 방법은 Apple이 MacBook에서 기본적으로 제공하는 모든 Bonjour 서비스를 찾지는 못합니다. 웹 사이트와 똑같이 구현되므로이 작업을 수행하려면 무엇을해야합니까? 내 MacBook이 Bonjour 서비스 이외에 WiFi-Direct 장치로 인식되도록 조치해야합니까? 또는이 설정으로 안드로이드의 API를 사용하는 것은 불가능합니다. 안드로이드의 API가 더 완벽 해지고 문서화 될 때까지 필요한 것을하기 위해 JmDNS와 같은 라이브러리를 조사해야합니까?

이 새로운 Nsd API에 대해 안드로이드가 제공하는 것을 제외하고는 (매우 철저하지는 않습니다.) 안되는 문서가있는 것처럼 보이므로, 다른 누군가가 이것으로 뛰어 들어 더 많은 지침을 줄 수 있다면 크게 도움이 될 것입니다. 고맙다!

답변

0

이것은 아마도 MacBook Pro가 제공하는 서비스 구현에 달려 있습니다.

"로컬 네트워크에서 내 MacBook Pro에서 Bonjour 서비스를 실행 중입니다." - WI-FI 직접 NSD를 사용하는 경우 로컬 네트워크에서 실행중인 서비스를 찾지 않을 것이라고 생각합니다. 주변 장치에서 WI-FI 직접 연결 및 연결없이 실행되는 서비스

"그러나 Wi-Fi Direct Service Discovery를 사용하면 네트워크에 연결하지 않고 주변 기기의 서비스를 직접 검색 할 수 있습니다."

MacBook Pro가 WI-FI 직접 통신을 지원하기 위해 별도의 구현이 필요할 수 있으므로 로컬 네트워크가 아닌 검색 요청에 응답 할 수 있습니다. 죄송 합니다만 지금은 이것보다 더 말할 수 없습니다.

+0

내가 생각한 것입니다. 안드로이드 NSD 배를 뛰어 넘고 JmDNS를 오래 전에 구현하기 시작했습니다. 모든 것이 원활하게 진행되고 있습니다 :) –

+0

NSD API 또는 JmDNS와 비슷한 구현을 통해 TXT 레코드를 얻을 수 있습니까? 감사 – Snekithan

관련 문제