2012-10-04 3 views
4

android Jelly Bean 4.1.1에서 wifi를 사용하여 앱을 개발하려고합니다. P2P는 I를 사용하는 경우 immedialtely 내가 모두 켜져 내가이 삼성 (구글) Nexus 기기와 와이파이 지시로 테스트하고있는안드로이드에서 WiFi Direct가 제대로 작동하지 않음

onPeersAvailable(WifiP2pDeviceList) 

에 다시 전화를 얻고 그 후

mManager.discoverPeers(mChannel, actionListener); 

전화 . 하지만이 콜백은 비어있는 동료 목록을 반환합니다. 그러나 예를 들어 내가 기본 와이파이 다이렉트 인터페이스의 검색 동료 버튼을 클릭하면 immedialtely 두 번째 장치는

WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION

를 발생하고이 어떤 inturn

onPeersAvailable(WifiP2pDeviceList peers) 
를 호출

을 사용하여 해당 이벤트를 위해 동료를 요청할 때

mManager.requestPeers(mChannel, WifiDirectService.this); 

이번에는 동료를 볼 수 있습니다. 나는 이것을 여러 번보고있다.

가능한 이유는 무엇입니까? 감사

답변

1

당신은 발견 peermethod 사용해야합니다 검색 프로세스가 성공하고 동료를 감지

manager.discoverPeers(channel, new WifiP2pManager.ActionListener() { 
    @Override 
    public void onSuccess() { 
     ... 
    } 

    @Override 
    public void onFailure(int reasonCode) { 
     ... 
    } 
}); 

경우, 시스템은 당신의 목록을 얻기 위해 방송 수신기에서 수신 할 수있는 WIFI_P2P_PEERS_CHANGED_ACTION 의도를, 방송을 동료들. 애플리케이션이 WIFI_P2P_PEERS_CHANGED_ACTION 인 텐트를 수신하면 requestPeers()를 사용하여 검색된 피어 목록을 요청할 수 있습니다.

전체 예제는 다음을 확인하십시오. http://developer.android.com/guide/topics/connectivity/wifip2p.html#discovering

+0

죄송합니다. 동일한 기능을 사용하고 있습니다. 질문을 업데이트했습니다. – Zach

+0

성공하면 무엇을하고 있습니까? –

+0

나는 requestPeers를 호출한다. – Zach