JAVA_POSITION

Completed Posted 4 years ago Paid on delivery
Completed Paid on delivery

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 [1] and sensor API [2] of Android. To participate in the selection you are asked to send an example of a PSEUDOCODE of one of the required methods.

TYPES RETURNED

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

getCurrentPosition method

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).

getDirectionVector method

It returns a pair of coordinates (with their timestamps) and a Boolean indicating if the device is moving to StartPosition or EndPosition

getInstantSpeed method

It returns instantaneous speed (see google API)

getAverageSpeed method

It returns the average speed in the current sampling range.

getAccelerometerAxisValues method

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.

getAxisOrientation method

It returns a triple float indicating the current orientation of the accelerometer vectors (if available as hardware). If not, it raises the NoAccelerometer exception.

setSampleInterval method

It allows you to change the sampling interval (the interval of two consecutive readings of position values and sensors).

References

[1] [login to view URL]

[2] [login to view URL]

Android Java Mobile App Development Software Architecture

Project ID: #19289441

About the project

8 proposals Remote project Active 4 years ago

Awarded to:

kmozsi

Hello, my name is Krisztián and I am a software developer from Hungary, new to the freelance world. I have 3 years of experience in professional software development in Java, in multinational environment as well. More

€80 EUR in 3 days
(1 Review)
2.2

8 freelancers are bidding on average €110 for this job

prakash2813

Hi there, I am java developer with 7+ years of experience in web and desktop app development. I have strong expertise in OOP, data structure, trees, graphs, multi threading, cryptography, genetic algorithm implementa More

€180 EUR in 2 days
(135 Reviews)
6.5
DianaAli0608

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.

€100 EUR in 1 day
(24 Reviews)
4.6
intelliworker

I am an Android Java developer. I'm willing to offer my services for this Android app with clean and efficient results. I look forward to long-term cooperation with you. Contact me for quick and quality work. I woul More

€111 EUR in 10 days
(1 Review)
1.0