2015-10-02 22 views

回答

1

因爲你問的步驟。我用一些java僞代碼提出高層次的步驟。

MulticastSocket socket; 
MulticastLock mcLock; 
WifiLock wifiLock; 
DatagramPacket dgram; 



// make a socket 
socket = new MulticastSocket(...) 

// join the multicast group 
socket.joinGroup(<your server>) 

// obtain wifi lock 
wifiLock = ((WifiManager) 
    THIS_CONTEXT.getSystemService(THIS_CONTEXT.WIFI_SERVICE)).createWifiLock("clientWifiLock"); 
wifiLock.acquire(); 

// obtain multicast lock 
mcLock = ((WifiManager) THIS_CONTEXT.getSystemService(Context.WIFI_SERVICE)) 
    .createMulticastLock("replicationMulticastLock"); 
mcLock.acquire(); 

// make a datagram packet for receiving 
dgram = new DatagramPacket(...); 

// receive data 
socket.receive(dgram); 
// loop if necessary and receive more data and save it in a buffer 

您可能還需要在您的清單文件 以下權限使用許可權的android:NAME = 「android.permission.ACCESS_WIFI_STATE」 使用許可權的android:NAME = 「android.permission.CHANGE_WIFI_STATE」 用途-permission android:name =「android.permission.CHANGE_NETWORK_STATE」 uses-permission android:name =「android.permission.INTERNET」 uses-permission android:name =「android.permission.CHANGE_WIFI_MULTICAST_STATE」 uses-permission android:name =「android.permission.ACCESS_NETWORK_STATE」