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]
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.
Based on the provided project details, I estimate to complete your project within 3 days after clarifying requirements and details. I would appreciate working with you.
To make sure I understand the task well, I have some questions.
1) When does sampling start? At the instantiation of the class, or at the first method invocation?
2) What is the measure of the parameter of the setSampleInterval method?
3) Should getDirectionVector method return the most recent 2 coordinates or the last and the first one?
method getAxisOrientation(void): (Decimal, Decimal, Decimal) is
call [login to view URL](rotationMatrix, null, accelerometerVal, magnetometerVal)
call [login to view URL](rotationMatrix, baseOrientation)
return baseOrientation // watch out for ordering and unit of measurement
end method
€80 EUR 3 napon belül
5,0 (1 értékelés)
2,2
2,2
8 szabadúszó adott átlagosan €110 EUR összegű árajánlatot erre a munkára
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 implementation and more.
I have read the details, this is an easy job for me.
Please have a look at my profile portfolio and similar past work with reviews.
Message me, I would like to discuss further over chat.
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.
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 would be pleased to answer your concerns in better way. Looking forward to hear back.
Thanks.