1. 程式人生 > >android中udp協議廣播的實現

android中udp協議廣播的實現

這是本人在實現upd區域網廣播遇到的問題總結帖.(是廣播不是組播)

以下幾個問題可能導致無法接受到廣播

1. 有些廠家的手機rom預設是關閉了接受區域網廣播這個功能的,所以我們需要一個MulticastLock這個類來開啟接受廣播的功能;

這個MulticastLock是WifiManager的內部類,我們需要一個WifiManager例項才能獲得一個MulticastLock例項.

開啟廣播功能的方法MulticastLock.acquire();

//在這兩個方法中接受包就可以了DatagramSocket.receives();

當我們接受完包後必須關閉這個功能multicastLock.release();

這個功能涉及到wifi許可權,我順便把聯網的許可權貼出來

聯網許可權

<uses-permission android:name="android.permission.INTERNET"/>
wifi控制權限

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

2.這個問題是udp協議缺點產生的,udp協議在傳送廣播它只負責傳送,並不管你是否接受成功.所以當我們在傳送廣播時務必多傳送幾個,也就是迴圈傳送!!!本人就是掉在這個坑中爬了好久

本人就不貼程式碼了,如果需要程式碼的留言留下郵箱說明下,我有空會發過去.