Ti.LocationUpdateService

A bound and started service that is promoted to a foreground service when location updates have been requested and all clients unbind.

For apps running in the background on "O" devices, location is computed only once every 10 minutes and delivered batched every 30 minutes. This restriction applies even to apps targeting "N" or lower which are run on "O" devices.

This module realizes a solution for it. When an activity is bound to this service, frequent location updates are permitted. When the activity is removed from the foreground, the service promotes itself to a foreground service, and location updates continue. When the activity comes back to the foreground, the foreground service stops, and the notification assocaited with that service is removed.

Usage

var GeoService = require("ti.locationupdatesservice");
GeoService.addEventListener("ServiceConnectionChanged",function(e) {
	console.log(e);
});
GeoService.config({
	database : "geolog",  // tablename the same		
	notification: {
		channel : "cannel1",
		title : "Sua posição",
		stopTracking : "Stop tracking", // or null if you don't need
		startTracking : "Omeçar a rastrear", // or null if you don't need
		
	},
	adapter : {  // not yet implemetented ;-(
		uri: "https://"
		requestHeaders: [],
		extraParameters : {
			uid : "1111"
		},
		method : "POST",
		timeout : 100000
	}
})
GeoService.addEventListener("location",function(e){
	 Object.keys.forEach(function(k){
	 	console.log(k + " :  " + e[k])
	 	/* 
	 		location,time,latitude,longitude,accuracy,bearing,provider,speed 
	 	*/
	 });
});
GeoService.requestLocationUpdates({
	interval : 2 // sec.
	duration : 3600 // optional,
	onlocation : function(e) { // optional
	  // same as eventlistener
	}
});

// later:
GeoService.removeLocationUpdates();

win.addEventListener('close',GeoService.removeLocationUpdates);

INSTALL YOUR MODULE

Mac OS X

Copy the distribution zip file into the ~/Library/Application Support/Titanium folder

Linux

Copy the distribution zip file into the ~/.titanium folder

Windows

Copy the distribution zip file into the C:\ProgramData\Titanium folder

REGISTER YOUR MODULE

Register your module with your application by editing tiapp.xml and adding your module. Example:

ti.locationupdatesservice

When you run your project, the compiler will combine your module along with its dependencies and assets into the application.

USING YOUR MODULE IN CODE

To use your module in code, you will need to require it.

For example,

var my_module = require('ti.locationupdatesservice');
my_module.foo();

TESTING YOUR MODULE

To test with the script, execute:

titanium run --dir=YOURMODULEDIR

This will execute the app.js in the example folder as a Titanium application.

DISTRIBUTING YOUR MODULE

You can choose to manually distribute your module distribution zip file or through the Titanium Marketplace!

Cheers!