2013-02-18 79 views
1

好的我寫了一個發送和接收多播UDP數據包的應用程序。該應用程序完美地運行在我的三星S3上,但它在運行Android 2.3.5的HTC Explorer上沒有收到任何數據包。在進一步的研究中,我發現有些手機完全不支持UDP多播。我想確保我的應用程序可以在所有手機上使用。我們可以在HTC手機上啓用多播嗎?如果不是,還有其他解決方案來解決這個問題嗎?Android:HTC手機上的UDP多播

+0

「我發現有些手機完全不支持UDP多播」。參考? – Houf 2013-03-04 01:07:37

回答

0

我跑進對HTC的一個同樣的問題,運行Android 4.1.2

下面是解決它,我從Android bug report一個解決方案:

Wanting to receive broadcasts in a async routine I now use the following code just before the loop where the broadcast messages are received: 

WifiManager wifi; 
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
MulticastLock ml = wifi.createMulticastLock("just some tag text"); 
ml.acquire(); 

When the asynctask stops I do a 
ml.release(); 

我還必須包括以下AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />