The purpose of this project is to write a java class for use in the Android Studio environment (NOT ECLIPSE).
The java class to be developed will have to be structured using static methods, making the class in fact NOT INSTANTABLE, NOT EREDITABLE. It is necessary that the class constructor raises an exception in case you try to instantiate the class itself. In addition, you must correctly configure the non-heritability operators.
The class will have the task of interfacing with the positioning, geolocation  and sensor API  of Android. To participate in the selection you are asked to send an example of a PSEUDOCODE of one of the required methods.
The class shall use the following types of data. Note that float and decimal are used as synonyms as they come from different reference APIs. Therefore, use them as synonyms.
1. TimeStamp is a class that contains a date and time stamp (e.g., the Java Date class).
2. InstantPosition Indicates a triple composed of a Timestamp and a pair of floats. At the index one of the triple is available the current latitude, while at the index two the current longitude; The index zero contains the timestamp of the detection. Example of the returned value: (Timestamp, Decimal, Decimal).
3. TimeStart and TimeStop are considered two TimeStamp classes (use the standard java class).
4. StartPosition and EndPosition are of the InstantPosition type, to be used to maintain the start and end positions of the current SAMPLING. Sampling is a configurable time interval (using the setSampleInterval method).
5. Verse is a Boolean value that indicates with True the direction pointing to EndPosition. With False it indicates the direction pointing to StartPosition.
METHODS TO IMPLEMENT
The class, to be named UserPositionManager, must implement the following interface:
• method getCurrentPosition(void): InstantPosition
• method getDirectionVector(void): (StartPosition, EndPosition, Verse)
• method getInstantSpeed(void): Decimal
• method getAverageSpeed(void): (StartPosition, EndPosition, Decimal)
• method getAccelerometerAxisValues (Void): (Decimal, Decimal, Decimal)
• method getAxisOrientation: (Decimal, Decimal, Decimal)
• method setSampleInterval: (Integer) : void
It returns the last known GPS position with its timestamp. If the position is not available or some error occurs, it raises an exception. Exceptions must be defined to determine a general error (Exception) or a (InvalidDataException).
It returns a pair of coordinates (with their timestamps) and a Boolean indicating if the device is moving to StartPosition or EndPosition
It returns instantaneous speed (see google API)
It returns the average speed in the current sampling range.
It returns a triple float that reports the current values of the x,y,z axes on the accelerometer (if available as hardware). If not, it raises the NoAccelerometer exception.
It returns a triple float indicating the current orientation of the accelerometer vectors (if available as hardware). If not, it raises the NoAccelerometer exception.
It allows you to change the sampling interval (the interval of two consecutive readings of position values and sensors).
 [login to view URL]
 [login to view URL]
11 pekerja bebas membida secara purata €105 untuk pekerjaan ini
Hi! How are you? I am a senior software developer who has rich experience with Java, Android Studio . I am really interested in your project. I wanna work with you. Thank you.
I can do this project. I have experience of Python, C & C++ and Java programming for 5+ years. I can satisfy you perfectly. Please contact me and discuss in detail.