2014-11-12 5 views
11

나는 와이파이 직접 통해 안드로이드를위한 멀티 플레이어 게임을 만들려고합니다. 장치에 연결하기 위해 http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html의 지침을 따랐습니다.안드로이드 와이파이 직접 WIFI_P2P_PEERS_CHANGED_ACTION받지 못했습니다

discoverPeers()과 함께 사용하는 ActionListener는 성공적으로 반환하지만 그 후에는 이라고하는 WIFI_P2P_PEERS_CHANGED_ACTION 의도를 수신하지 못합니다. 이상하게도 한 장치에서 WiFi 직접 시스템 설정으로 들어가면 다른 장치가 내 응용 프로그램을 통해 성공적으로 감지 할 수 있습니다. 앱에서 내 기기를 검색 가능하도록 설정해야합니까? 필자는 WiFi P2P와 관련한 안드로이드 개발자 리소스에서 발견 된 것을 찾지 못했습니다. 서비스 발견을 위해 와이파이가 직접 연결되었지만, 그게 완전히 다른 것입니다, 그렇지 않습니까?

+1

같은 문제가 있습니다. 문제가 무엇인지 추적 해 본 적이 있습니까? – lostintranslation

+0

여기에 답이 약간 있지만, 어디서 볼 수 있는지 보여 줄 수 있습니다 : [피어가 Wi-Fi Direct 범위에서 더 이상 사용 가능하지 않을 때 알림 방법] (http://stackoverflow.com/questions/21072081/) 피어 - 더 - 더 이상 - 사용할 수있는 -에 - - 직접 - 범위 - 직접 - 범위 -) - 통보하는 방법. – Vikram

답변

0

브로드 캐스트 리시버 인 텐트 필터에 WIFI_P2P_PEERS_CANGED_ACTION을 (를) 추가 했습니까? 우리는 당신을 돕기 위해 더 많은 정보가 필요합니다.

+0

음, 그렇습니다. 내가 말했듯이, 나는 http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html에있는 지침을 따랐다. 나는 어떤 다른 정보를 제공해야할지 모르겠습니다. 코드를 게시 할 수는 있지만 공식 예제의 코드와 비슷하므로 매우 흥미롭지는 않습니다. – cargath

0

당신은 설정/와이파이/와이파이 다이렉트/사용 가능한 기기 당신은뿐만 아니라 다른 장치에 discoverPeers()를 실행해야

3

에서 장치를 찾을 수있다.
이제 WIFI_P2P_PEERS_CHANGED_ACTION 의도를 수신합니다.

0

나는 당신과 같은 문제를 겪었습니다.

이 경우 해당 문제에 기여하는 두 가지 요인이 있습니다. 먼저 이벤트가 발생하지 않았고 다른 사람에게 브로드 캐스팅되지 않았습니다. 두 번째로 이벤트가 발생 했음에도 불구하고 의도 필터는이를 catch하지 않습니다.

제 경우에는 수신자가 이벤트를 제대로 수신하지 못하는 것으로 나타났습니다. 이유는 제가 의도 필터에 registerReceiver를 제대로하지 않았기 때문입니다.

내가

intentFilter.addAction(WifiP2PManager.WIFI_P2P_PEERS_CHANGED_ACTION), 

을 한 후 나는

ct.registerReceiver(bReceiver, intentFilter). 

CT는 활동이나 상황입니다하지 않았고, bReceiver는 WifiDirectBroadcastReceiver입니다. 나는 첫째로 썼다

ct.registerReceiver(bReceiver, intentFilter), 

그러나 제대로 실행되지 않았다.

희망이 있습니다.