7
서비스 발견시 시스템 고장이 발생합니다. 시도하고있는 유형의 검색은Nsd Manager 안드로이드 크래쉬 온 4.2.2
"_http._tcp"입니다.
다음은 로그입니다. 내가 실행하면
D/NsdService(13310): Discover services E/AndroidRuntime(13310): *** FATAL EXCEPTION IN SYSTEM PROCESS: NsdService E/AndroidRuntime(13310): java.lang.NullPointerException E/AndroidRuntime(13310): at com.android.server.NsdService$ClientInfo.access$1200(NsdService.java:801) E/AndroidRuntime(13310): at com.android.server.NsdService$NsdStateMachine$EnabledState.requestLimitReached(NsdService.java:244) E/AndroidRuntime(13310): at com.android.server.NsdService$NsdStateMachine$EnabledState.processMessage(NsdService.java:292) E/AndroidRuntime(13310): at com.android.internal.util.StateMachine$SmHandler.processMsg(StateMachine.java:905) E/AndroidRuntime(13310): at com.android.internal.util.StateMachine$SmHandler.handleMessage(StateMachine.java:760) E/AndroidRuntime(13310): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(13310): at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime(13310): at android.os.HandlerThread.run(HandlerThread.java:60)
내가 발견을 시작하기 위해 사용하는 코드는 매번 내 휴대 전화가 다시 시작
NsdManager nsd = (NsdManager) getSystemService(Context.NSD_SERVICE); nsd.discoverServices("_http._tcp.", NsdManager.PROTOCOL_DNS_SD, discoveryListener);
입니다. 내 생각에 이것은 Android의 버그입니다. 4.2.2
JmDns를 사용하는 것이 가장 좋습니다. 거의 모든 안드로이드 기기가 API 7로 돌아갑니다. – djunod
jmdns가 마음에 들었고 전에 작업 해 봤습니다. –
Android 5에서는 JmDNS가 실패합니다.하지만 NSD도 오해합니다. –