| ID | CS001293 | Creation date | January 26, 2009 |
| Platform | S60 5th Edition | Tested on devices | Nokia 5800 XpressMusic |
| Category | Flash Lite | Subcategory | Location |
| Keywords (APIs, classes, methods, functions): Service.Location, location.Trace(), location.CancelNotification() |
This code snippet demonstrates how to track movements of the device using the Location Platform Service for Flash Lite, supported from S60 5th Edition onwards.
Note: To get location data, the device GPS needs to be active.
// Import Platform Service Interface
import com.nokia.lib.Service;
// Heading of the application
heading_txt.text = "Tracking movements of the device";
text_txt.text = "Start tracking by clicking the button.";
// Create new Service object which has location information
var location = new Service("Service.Location", "ILocation");
/**********************************************************
** Function for pressing the Track button.
** Calls Trace() method asynchronously.
** Traces location information to the text field.
**********************************************************/
track_mc.onPress = function() {
text_txt.text = "Waiting for GPS";
// Disable button because an asynchronous method cannot be called twice
track_mc.enabled = false;
// Define input parameters
// 1000000 microseconds = 1 second (update interval)
var updateOptions = {UpdateInterval:1000000};
var inParams = {LocationInformationClass:"GenericLocationInfo",
Updateoptions:updateOptions};
// Call Trace() as an asynchronous method
location.Trace(inParams,onNotify);
// Define callback function
function onNotify(transactionID:Number, eventID:String, outParam:Object) {
if (outParam.ErrorCode == 0) {
var outList = outParam.ReturnValue;
var longitude = outList.Longitude;// Contains longitudinal data
var latitude = outList.Latitude;// Contains latitudinal data
text_txt.text = "Longitude:\r"+longitude+"\rLatitude:\r"+latitude;
} else {
var errorId = outParam.ErrorCode;
text_txt.text = "Error while tracking: "+errorId;
};
};
};
/**********************************************************
** Function for pressing the Stop button.
** Calls CancelNotification() method synchronously.
** Method cancels the Trace method
**********************************************************/
stop_mc.onPress = function() {
// Define input parameters
var inParams = {CancelRequestType:"TraceCancel"};
// Define result value
var outParams = location.CancelNotification(inParams);
if (outParams.ErrorCode == 0) {
text_txt.text = "Trace stopped."
} else {
var errorId2 = outParams.ErrorCode;
text_txt.text = "Error while stopping: "+errorId2;
};
// Enable Track button
track_mc.enabled = true;
};
When the Track button is pressed, the current location (longitude and latitude) of the device is displayed. Location information on the screen changes when the device moves. Tracking can be stopped by pressing the Stop button.
The following sample application has been tested in the Nokia 5800 XpressMusic (S60 5th Edition, Flash Lite 3.0). File:FlashLite Tracking Movements of the Device.zip
No related wiki articles found