Blackberry GPS tracking with Web service

En curso Publicado Jul 26, 2010 Pagado a la entrega
En curso Pagado a la entrega

I have developed an android application which runs as a "silent service" in the phone, gathering every few minutes GPS location (from GPS device, and if GPS is not available from phone network position if available).

That service tries to send the location to a webservice if Internet connection is available, and if it is not available, the service saves the location in the phone's local filesystem and whenever Internet connection (or wifi) is available again, sends all the stored locations to the same webservice.

The application has another "visible" part, which is a simple form (password protected) with service's setup options:

- phone ID.

- recording schedule (days and hours when service will record locations)

- service startup options

- etc.

Once the application is installed (only one installation file) it should autorun the service on every phone startup and allow open config form from applications (or similar) menu.

I need to port that application to work on as many blackberry GPS mobiles as possible (desireable highest compatibility to work unchanged on other models yet to come)

I don't know how application signing works on this platform, neither if it needed at all. I would need assistance on these topics.

Development should be in java.

i need clone the software of [login to view URL]

## Deliverables

This application is aimed to be installed by people who don't have high technical skills so it must be very straight forward to install. I need to have a downloadable version at my website, and on android version I have also published the app in the android market. Is there something similar on blackberry world?

About signing the app, if it is not very expensive I would be interested on doing it, to improve the app's user first impression.

About the application itself, the autostarted application may make 1 of 2 calls to an existing http web-service:

- SendPointRealTime(params) where params are all relevant data I store about a registered location. (See XML definition to full details)

- SendPointsOffline(xml) where xml is a XML string which contains XML nodes (one stored point's data per node). This method is used only when real time method (SendPoint) could not be called because the device was offline and the application stored locally the data until internet connection is available again. An example xml string would be:

<?xml version=\"1.0\" encoding=\"utf-8\"?>

<x> 30.1234123 </x>

<y> -3.12341234 </y>

<date> 12/12/2010 23:59:59 </date>

<nosignal> boolean</nosignal> //if GPS and network receiver have no signal at the moment of getting location

<address> Main Street 25 (Madrid)</address> //Optional, not required

<errormargin> 12.0 </errormargin> // meters

<altitude> 100.0 </altitude> // meters

<direction> 250 </direction>//degrees

<speed> 12 </speed> m/s

<source> gps </source> //could be GPS or phone network

<numberofsatellites> 5 </numberofsatellites>

<telephone_cellid>1414434 </telephone_cellid>

<lac> aaasd </lac> //from nearest antenna

</point>

... (other nodes)

</points>

NOTE: this is not the real XML, I have translated it to english for you.

Some of params might need further explanation:

NOSIGNAL - I record a location (point) every X minutes. I want to know if the device user has switched off the application or the device, so even if the device has no GPS nor network signal, I record the point (same values as last valid point) and I mark it as nosignal=true. Else, a valid point is always nosignal=true.

ADDRESS - For me is always empty, just in case in the future it is easy to convert X,Y position into an address. There is no need to do it now as I suppose it would be a useless waste of battery (right now I do that translation at my webservice).

SOURCE - Whenever GPS device has no satellites, I change to "secondary" location provider (android devices have this feature, I assume nokia do too) which is phone network antenna positioning. I know this kind of positioning has a much greater error margin, but it is better than nothing.

The GUI of the app is attached as a picture. I translate most important strings:

1- Location screen:

* X

* Y

* Source (gps/phone network)

* altitude

* Error margin

* Active satellites

* Last update

a- Open up menu

2- Menu options

* Send/record current point (depending on availability of Internet connection) Preferences

* Help

* Exit

b- Click on help

3- Help screen (help text and Close button)

c- Click on preferences

4- Preferences screen

* Device ID (automatic fetch of IMEI)

* User name (string)

* Protect this screen by password (boolean)

* Password (string)

* Autostart (boolean)

* GPS high sensitivity (boolean, whethere GPS is working non-stop or rests some of the time to save battery)

* Recording period (integer - minutes)

* Schedule (new screen)

d- Click on schedule

5- Schedule

* Monday start recording time

* Monday stop recording time

* Tuesday start recording time

* Tuesday stop recording time

* Wednesday start recording time

* Wednesday stop recording time

* Thursday start recording time

* Thurday stop recording time

* Friday start recording time

* Friday stop recording time

* Saturday start recording time

* Saturday stop recording time

* Sunday start recording time

* Sunday stop recording time

Best regards.

## Platform

**Blackberry**

Odd Jobs

Nº del proyecto: #3600800

Sobre el proyecto

1 propuesta Proyecto remoto Activo Aug 4, 2010

1 freelancer está ofertando el promedio de $170 para este trabajo

rizthecsian123

See private message.

$170 USD en 7 días
(0 comentarios)
0.0