2016-04-23 42 views
5

當您在Wi-Fi Direct中撥打discoverPeers時,它將返回PeerListListener中的onPeersAvailable方法的對等方列表(一旦您撥打requestPeers)。但是,當您撥打discoverServices時,您只能在方法DnsSdServiceResponseListener中一次獲得一項服務。有誰知道是否有辦法改變這種情況,並在給定的時間獲得所有可用的服務?或者如果有一個特定的原因,爲什麼它一次只能返回一個?爲什麼Android Wi-Fi Direct只能通過discoverServices一次返回一項服務?

回答

1

據我所知,沒有辦法改變這種情況。他們只是一個接一個,而且時機也不是真的。

總而言之,提出的處理全部問題的方法是實現一個定時器,每當您發現時都會重置該定時器,並在發現之前觸發它,您將確定所有對等服務都已發現。吮吸,但這是它的工作方式。

+0

要添加到此答案,我認爲Android開發人員的邏輯是正確的。該設備已經發現了一項服務,因此您的應用程序會收到此新發現的服務的通知。但是,當調用PeerListListener回調時,onPeerAvailable方法會向您提供所有可用對等方的狀態。 Wi-Fi P2P服務發現的超時時間爲兩分鐘(https://sphen.proxmobil.com/android-wi-fi-direct-service-discovery/),因此您可以在兩分鐘內緩存發現的服務。 –

相關問題