GPS Tracker projek kan iemand om 'n GPS-enabled selfoon op te spoor met behulp van Google Maps. Vir hierdie projek het ek 'n Motorola i355 selfoon op die Sprint / Nextel netwerk.
Jy moet 'n plan data te hê sodat jy updates kan maak om jou webwerf van die selfoon. Lees asseblief die README.TXT in die aflaai vir die installasie instruksies. Ek hoop jy geniet die projek. As jy enige vrae het, voel vry vra hulle in die forum.
Daar is twee projekte beskikbaar. Die eerste projek is gebou met NET en Microsoft SQL Server. Die tweede projek is gebou met PHP en MySQL. Indien u enige voorstelle het, voel asseblief vry om my te laat weet. Beide projekte gebruik Java (J2ME) oor die telefoon.
Hoe dit werk:
Geen van die kode vir hierdie projek is baie moeilik, maar dit strek oor 'n aantal vlakke en tale wat nie vertroud is met sommige mag wees. Figuur 1 toon die data vloei van die foon na Google kaart.
Phone
Kom ons begin met die kode op die selfoon. Hierdie inligting is geskryf in Java met behulp van Java 2 Micro Edition (J2ME). Java is baie soortgelyk aan C #. As jy kyk deur die kode, die enigste ding wat 'n C # kodeerder kan verwar is die vektor. A java vektor is pretty much 'n C # Array List, 'n dinamiese skikking. Daar is 2 klasse in die jeug, LBSMidlet7 en Qworker. A Midlet is 'n app wat op selfone loop. Neem 'n blik op die klas definisie. Dit strek die klas Midlet en implementeer 'n LocationListener koppelvlak. Dit beteken dat ons nodig het om al die metode definisies van daardie koppelvlak in ons klas sit. Ons sal aan wat jy in 'n bietjie, nou laat ons kyk na die constructor.
Ons doen 2 dinge in die constructor. Ons skep 'n QWorker voorwerp en beweeg dit "hierdie" en die webwerf wat ons sal oplaai na. Die getAppProperty metode kry eienskappe uit die JAD lêer. Maak die JAD lêer in jou gunsteling teks editor en daar sal jy die webblad wat jy GPS data sal stuur om te sien. Let op hoe ons verby "hierdie" om die GWorker voorwerp? Dit is die LBSMidlet7 voorwerp. Neem 'n vinnige blik op die klas QWorker, dit strek die klas Thread. Dit is waarom worker.start () in die LBSMidlet7 constructor noem. Ons wil ons draad werker begin.
Wanneer jy 'n draad te begin, wat jy doen is die skep van 'n voorwerp en dan hardloop run metode se voorwerp (). Neem 'n blik op die aanloop metode. Dit het 'n oneindige lus, en in die loop van die eerste ding wat dit doen, is bel queue.wait (). Kyk na die definisie van die tou. Die tou is 'n abstrakte data tipe (ADT), is dit net soos 'n tou by 'n bank, voer die tou aan die agterkant van die lyn en laat die tou wanneer jy aan die voorkant van die lyn. Kyk na die definisie van die tou, dit is ons vektor (dinamiese skikking). Wanneer jy wag bel () op 'n voorwerp in 'n klas wat die klas Draad strek, dit sit die voorwerp aan die slaap. Dink oor wat 'n bietjie. Wanneer ons getref dat die lyn, is ons QWorker voorwerp wag nou ... Wat is dit wag vir? Ons sal aan wat jy in 'n minuut. Voordat ons dit doen, neem 'n blik op die gesinchroniseer navraag. Let daarop dat dit wikkel die tou. Wat dit beteken is dit sit 'n slot op die tou en vertel al die ander prosesse in die tou te raak nie, tot op daardie bietjie blok van die kode is gedoen met dit.
Ok, so nou het ons 'n draad begin werker en sit dit om te slaap. Kom ons gaan nou terug na die klas LBSMidlet7 en neem 'n blik op die metode startApp (). In die lewensiklus van 'n Midlet, is die constructor keer genoem en dan die metode startApp () word die volgende genoem. In werklikheid kan dit 'n paar keer genoem word, soos byvoorbeeld wanneer jy 'n flip selfoon te sluit en maak dit dan weer. Wat gebeur is dat die jeug is opgeskort en wanneer jy die telefoon weer oop te draai, is startApp () weer genoem. In startApp (), kry ons ons vertoning en dan skep ons 'n LocationProvider indien een nie reeds geskep en ons maak 'n ander draad ... Hoekom skep ons al hierdie drade? Goeie vraag. Wanneer 'n Midlet (app) geskors, die agtergrond drade wat geskep hou hardloop. Dit stel ons in staat om ons GPS data te kry en stuur dit aan ons webbediener terwyl ons ander belangrike dinge soos make oproepe.
Die LocationProvider is wat ons GPS data kry. Eerste skep ons 'n kriteria, ons gebruik die standaard, maar jy kan dinge soos akkuraatheid, reaksie tyd, ens Volgende het ons skep ons ligging luisteraar. Dit is nogal baie presies wat dit klink soos. Hier kan jy die interval vir hoe dikwels jy wil GPS data te kry stel. Dit is tans ingestel om 60 wat in sekondes. Wanneer data kom in, is die metode locationUpdated () genoem. Dit is 'n ander een van die vereiste metodes in die LocationListener koppelvlak. Hier skep ons nog 'n draad en noem getLocation (). Die metode getLocation () kry die GPS koördinate, skep 'n soektog string wat ons 'n bietjie later na die web-bediener sal stuur en dan noem worker.addToQueue in die klas QWorker.
Kom ons gaan oor na die klas QWorker en kyk wat gebeur in hierdie metode. Dit voeg die soektog string na die tou en dan noem queue.notify (). Raai wat queue.notify () doen? Dit wakker ons slaap QWorker draad en vertel dit te kry om te werk! Let daarop dat ons oproepe na die tou weer toegedraai in 'n gesinchroniseer blok. Let beoefen veilige threading ... Wanneer stel () genoem word op 'n draad, wat dit doen, is terug te gaan na die metode run () en die volgende lyn van kode uit te voer reg na waar ons aan die tou te wag (). So nou is ons net omtrent gereed om die GPS data te stuur na die web-bediener. Ons het 'n paar interessante lyne kode daar. PeekInQueue () wat die soektog string kry uit die tou, maar laat dit daar vir nou eers noem. Toe stuur dit die soektog string na die getUrl metode wat poog om die soektog string te stuur na ons web server. As dit suksesvol is, kan ons die soektog string van die tou te verwyder. Indien nie, laat ons die soektog string in die tou en probeer om dit weer later te stuur na die webbediener.
Waarom in die wêreld het ons hierdie moeilike tou hier? Ek is bly dat jy gevra het. Daar kan tye wees wanneer jy ontvang GPS data, maar is nie eintlik in 'n gebied wat 'n selfoon verbinding. As ons nie 'n selfoon konneksie, kan ons ons GPS data nie stuur na ons web server. So ons vashou ons soektog string in ons ry en wag totdat ons terug te kry in 'n gebied met selfoon connectability. Kan jy my nou hoor?
Wel, ons het 'n mooi billike bietjie van die tyd bestee verduidelik die telefoon-kode. Dit is 'n bietjie ingewikkeld, maar dit is belangrik om te weet wat aangaan as jy wil om die kode te neem en maak veranderinge aan dit aan jou behoeftes te pas. Hier is 'n goeie artikel oor die Sun webwerf om jou te laat weet oor meer vermoëns van die Location Based Services API. Reg oor die nou, moet ons soektog string aankom op ons webwerf, laat ons haal om dit en kyk wat gebeur.
Wat is nuut in hierdie release:
Soek op kategorie
- Besigheid en kantoor sagteware
- Bestuurders
- Blaaiers
- Digitale foto sagteware
- Grafiese ontwerp sagteware
- Huis en familie sagteware
- Internet sagteware
- Klank sagteware
- Kommunikasie sagteware
- Lessenaar verbeteringe
- Netwerk sagteware
- Nut van die stelsel
- Ontwikkelaar gereedskap
- Opvoedkundige en wetenskap sagteware
- Produktiwiteit sagteware
- Screensavers
- Sekuriteit sagteware
- Skyf & lêer sagteware
- Speletjies
- Video sagteware
- Web ontwikkeling sagteware
Die gewilde sagteware
antiX MX 1 Dec 17
Java-Chess 3 Jun 15
Xandros Desktop OS 3 Jun 15
Antergos 1 Dec 16
Syslinux 17 Feb 15
PlayOnLinux 9 Dec 15
ALT Linux (School Junior) 2 Jun 15
GPS Tracker
Kommentaar te GPS Tracker
Soek op kategorie
- Besigheid en kantoor sagteware
- Bestuurders
- Blaaiers
- Digitale foto sagteware
- Grafiese ontwerp sagteware
- Huis en familie sagteware
- Internet sagteware
- Klank sagteware
- Kommunikasie sagteware
- Lessenaar verbeteringe
- Netwerk sagteware
- Nut van die stelsel
- Ontwikkelaar gereedskap
- Opvoedkundige en wetenskap sagteware
- Produktiwiteit sagteware
- Screensavers
- Sekuriteit sagteware
- Skyf & lêer sagteware
- Speletjies
- Video sagteware
- Web ontwikkeling sagteware
Die gewilde sagteware
Openfiler 12 May 15
ALT Linux (School Junior) 2 Jun 15
Super Grub2 Disk 20 Jan 18
Puppy Linux "Slacko" 28 Apr 17
Kconfigure 3 Jun 15
Java-Chess 3 Jun 15
Google Music Manager 15 Apr 15
Kommentaar nie gevind