Ethernet  Automatizimi në shtëpi  eHouse ju lejon të automatikisht dërgoni një status broadcastu UDP (User Datagram Protocol) , të cilat mund të merrni të gjitha pajisjet në LAN tuaj ose WiFi dhe IP kënaqjen kusht – Gjendet në maskë lokal 255 . 255 . 255 . 0 , e cila është transmetuar jashtë statusit të adresat IP e kontrollorëve 192 . 168 . 0 . x .  UDP Broadcast ju lejon të çaktivizoni statusin e klientit shkarko TCP / IP , e cila kërkon një lidhje me kontrollues . UDP Broadcast është një protokoll connectionless , për të dhëna Përhapja dhe pavarësisht nga numri i pajisjeve që marrin nuk ngarkesës më shumë CPU ose lidhje e rrjetit . 
 Simple transmetim UDP pritja funksionojnë me smartphones , panele dhe tableta Android është treguar më poshtë .
Prandaj është një lak pafund mbi bazën e këtij funksioni , ju duhet të krijoni një fije (thread) që punojnë në sfond , duke i dhënë asaj punën më të ulët prioritet . 
 Ndryshe , ekzekutimin e këtij funksioni të bllokojë ekzekutimin e aktiviteteve të tjera të programit . 
 Kodi burim për marrjen e UDP platformë android Broadcast: 
 udp publik void (int port) / port / parametër të marr default transmetohen 6789 – Statusi në kontrollues binar 
 { 
 byte [] = broadcastadr bajt ri [4] ; 
 byte [] = localadr bajt ri [4] ; 
 WifiManager wifi = (WifiManager) getSystemService (Context . WIFI_SERVICE) ; / / Menaxher WiFi 
 DhcpInfo DHCP = wifi . getDhcpInfo () ; / / Get info nga wifi DHCP 
 në qoftë se (== null DHCP) / / të marrë vlerën e prezgjedhur është çaktivizuar nëse DHCP në rrjetin e eHouse 
 {/ / Jo DHCP ose një gabim për të pajisjes 
 broadcastadr [0] = (byte) 192 ; 
 broadcastadr [1] = (byte) 168 ; 
 broadcastadr [2] = (bajt) 0 ; 
 broadcastadr [3] = (bajt) 255 ; 
 } 
 tjetër / / DHCP 
 { 
 transmetimi = int (DHCP . IPAddress & ; ; DHCP . netmask) | ~ DHCP . netmask ; / / Per UDP transmetim – Nëse ju doni për të transmetuar të dhënat në funksion 
 kontrollues vetëm merr statusin 
 për (int k = 0 ; k < ; 4 ; k + +) broadcastadr [k] = (byte) ((transmetuar> ; > ; k * 8) dhe ; 0xFF) ; 
 lokale int = (DHCP . ipaddress) ; / / Adresa ip DHCP Lokale 
 për (int k = 0 ; k < ; 4 ; k + +) localadr [k] = (byte) ((lokale> ; > ; k * 8) dhe ; 0xFF) ; / / Per adresën lokal ip 
 } 
 mundohem 
 { 
 ds = new DatagramSocket (port) ; / / / Dëgjimi mbi UDP port të dhënave nga çdo ip 
 brenda një maskë – udp socket për të krijuar një shembull të numrit të portit lokale 
 } 
 kapur (e Exception) 
 { 
 / / Ehousecommunication . l ( ” INET error: merrni adresë ” + E . getMessage ()) ; për test 
 } 
 mundohem 
 { 
 ds . setBroadcast (e vërtetë) ; / / Aktivizo dërguar mesazh transmetimit – për transmetim 
 ds . setReuseAddress (e vërtetë) ; / / Aktivizo fole të shumta të përdorin të njëjtën adresë IP 
 / / Ds . setSoTimeout (400) ; / / Pritje timeout 
 } 
 kapur (Përjashtim io) 
 {/ / Ignore gabime, por ne të mbrojtur kundër aplikimit dhe sistemi gabime 
 } 
 / / * TEST UDP transmetim – broadcastu Testi udp transmetuar nga telefoni juaj ose tabletë – komunikimit të ardhmen me zbatimin e 
 / * Mundohuni 
 { 
 DatagramPacket dd = DatagramPacket ri ( ” Përshëndetje nga Fjala Android TEST UPD ” . getBytes () , 0 , ” Përshëndetje nga Fjala Android TEST UPD ” . Gjatësia () , 
 InetAddress . getByAddress (broadcastadr) , port) ; 
 ds . dërguar (dd) ; / / Dërgon një DatagramPacket 
 } 
 kapur (e Exception) 
 { 
 ehousecommunication . l ( ” Transmetojë gabim Datagram pako: ” + E . getMessage ()) ; 
 } 
 * / 
 MulticastLock ml = wifi . createMulticastLock ( ” Lock multicast aktivizuar ” ) ; 
 / / Krijo një shembull të multicast bllok dhe broadcastu 
 ml . Fitoni () ; / / Multicast lock enable pritja udp transmetuar – Ajo mund të jetë me aftësi të kufizuara smartphones Disa Android për qëllime kursimit batery – 
 broadcastu mbështetje UDP aktivizon telefonin në qoftë se ajo është e mbyllur dhe me aftësi të kufizuara vetëm 
 ndërsa (! ehousecommunication . Përfundojnë) / loop / pafundme për pritjen UDP 
 {/ / Loop Infinite marrë statusin UDP 
 DatagramPacket dp = new DatagramPacket (mesazh , mesazh . gjatësi) ; / / Udp Krijo buffer Datagram pakete duke përdorur të dhënat – e bën përdorimin e paketës PZHU 
 tampon ” mesazh ” 
 provoni { 
 ds . marrë (PD) ; / / PZHU pritjes pako nga sistemi eHouse – merr portin pako UDP e UDP socket a 
 në qoftë se (PD . getLength ()> ; 0) / / në qoftë se madhësia e parcelave më e madhe se zero – diçka e pranuar 
 { 
 EhouseTCP . QueryBuff = PD . getData () ; / / Caktoni një recepition transmetuar UDP querybuffer – ngarkuar në eHouse statusit tampon 
 / / Dp . setLength (0) ; – Madhësia pako është vendosur në zero mënyrë që të mos të procesit të njëjtat të dhëna në mënyrë të përsëritur 
 EhouseTCP . QueryReceived () ; / / Decode dhënave query vargjeve dhe do të mbushin pajisjet – decodes statusin e kontrollorëve dhe ngarkesat statusi aplikimi tryezë 
 } 
 } 
 kapur (Përjashtim os) 
 {/ / Ignore gabime 
 / / Ehousecommunication . l ( ” asdfasdfsafsa ” + Os . getMessage ()) ; / / Per testi i vetëm 
 } 
 } 
 ml . lirimi () ; / / Multicast udp bllokohet lirë për pritjen e aplikimit eHouse – lëshon multicast lock 
 ds . ngushtë () ; / / Mbylle fole Datagram në fund – mbyll fole në fund të 
 } 
 Lock multicast mund të kërkohet në disa pajisje Android . 
 UDP lokale Broadcast në rastin e telefonave celular mund të jetë i aktivizuar ose jo në varësi të firmware telefonisë mobile . 
 Ajo gjithashtu mund të jetë me aftësi të kufizuara të përhershme për kursimin e baterisë dhe për arsye sigurie ose për të zvogëluar ngarkesën CPU në rrjet në punë .
(Shënim konfigurimit kernel: CONFIG_IP_MULTICAST nuk u vendos) . 
 Veç kësaj , disa modele mund të jetë i bllokuar nga një firewall lokal dhe duhet të aktivizoni transmetimin në një port të caktuar (default 6789) . 
 Jashtë Broadcast kur duke përdorur GPRS lidhje interneti , EDGE , 3G , 4G mund të jetë i bllokuar ose i hapur nga operatori i rrjetit . Më shpesh , megjithatë , duhet të pritet , se ajo është e fiksuar në mënyrë për të minimizuar përdorimin e lidhjes . 
 Në disa modele të telefonave mobil , Zbatimi Software statusi i kontrollorëve të marrin UDP mund të jetë shumë e vështirë apo edhe e pamundur . Mund të kërkojë përdorimin e niebrandowanego firmware të veçantë ose smartphone . 
 Veç kësaj , kujdes duhet të merren kur upgradowaniu firmware dhe kontrolloni që të gjitha tiparet janë duke punuar siç duhet nga kutia , ndryshe diagnoza e gabimeve do të jetë shumë e vështirë . 
 Bazuar në disa telefonat HTC dhe produkteve të tjera që përmbajnë sistemi operativ Android versioni më i ulët se 2 . 3 . 3 vërejtur një bllok totale UDP pritja broadcastu . 
 Ky ishte versioni i Android (2 . 1 – 2 . 3 e periudhës së 01 . 01 . 2010 – 14 . 06 . 2011) 
 Nëse ju nuk mund të merrni UDP broadcastu shkarkoni dhe instaloni , Versioni i ri Android ROM e 2 minimale . 3 . 3 (14 qershor , 2011) , të cilat testuar saktësinë e transmetimit ngarkesës së punës UDP . 
 Version kernel 2 . 6 . 35 . 10 – htcg3ef43272 – Kernel @ and18 – 2 # 1 . 
 Jo . 3software . 14 . 405 . 1 . 
 Për të markave të tjera të telefonave me probleme të ngjashme , ju lutem shkarkoni Firmware Rom Android nga prodhuesi , versioni i të paktën 2 . 3 . 3 . 
 Vini re gjithashtu karakteristikat thelbësore të UDP pako . 
 Ata janë asinkron dhe kërkojnë lexuar në lidhje me atë që mund të shkaktojë gabime lexuar të dhënat e , humbja e tyre (derdhja) , sidomos me pajisje të ngadaltë , Lidhje , kombinuar ngarkesës së lartë dhe smartphones CPU pushtuese dhe tableta .
Gjendja e të dhënave UDP është e pajisur në checksum për të kontrolluar vlefshmërinë e të dhënave . 
  Automatizimi në shtëpi Producer  eHouse  Automatizimi në shtëpi  eHouse 
  Kontrollorët eHouse – Automatizimi në shtëpi  eHouse