DeviceMotion API
Original documentation: Cordova Accelerometer.
Remark: Usage of cordova API needs http://tizen.org/privilege/filesystem.read privilege.
Since: 3.0
Table of Contents
- 1. Interfaces
- 1.1. AccelerometerManagerObject
- 1.2. Accelerometer
- 1.3. Acceleration
- 1.4. AccelerationOptions
- 1.5. AccelerometerSuccessCallback
- 1.6. ErrorCallback
- 2. Related Feature
- 3. Full WebIDL
Summary of Interfaces and Methods
Interface | Method |
---|---|
AccelerometerManagerObject | |
Accelerometer |
DOMString watchAcceleration (AccelerometerSuccessCallback onsuccess, ErrorCallback onerror, optional AccelerationOptions? options)
void clearWatch (DOMString watchID)
|
Acceleration | |
AccelerationOptions | |
AccelerometerSuccessCallback | void onsuccess (Acceleration acceleration) |
ErrorCallback | void onerror (DOMException error) |
1. Interfaces
1.1. AccelerometerManagerObject
[NoInterfaceObject] interface AccelerometerManagerObject { readonly attribute Accelerometer accelerometer; };
Navigator implements AccelerometerManagerObject;
Since: 3.0
Privilege level: public
Privilege: http://tizen.org/privilege/filesystem.read
1.2. Accelerometer
[NoInterfaceObject] interface Accelerometer { void getCurrentAcceleration(AccelerometerSuccessCallback onsuccess, ErrorCallback onerror) raises(TypeError); DOMString watchAcceleration(AccelerometerSuccessCallback onsuccess, ErrorCallback onerror, optional AccelerationOptions? options) raises(TypeError); void clearWatch(DOMString watchID) raises(TypeError); };
Since: 3.0
Privilege level: public
Privilege: http://tizen.org/privilege/filesystem.read
Methods
-
getCurrentAcceleration
-
Gets the current acceleration along the x, y, and z axes.
void getCurrentAcceleration(AccelerometerSuccessCallback onsuccess, ErrorCallback onerror);
Since: 3.0
Privilege level: public
Privilege: http://tizen.org/privilege/filesystem.read
Parameters:
- onsuccess: The callback method to be invoked with current acceleration values.
- onerror: The callback method called when errors occur.
Exceptions:
- TypeError
if any of the input parameters contains an invalid value.
Code example:
function onSuccess(acceleration) { console.log("Acceleration X: " + acceleration.x + "\n" + "Acceleration Y: " + acceleration.y + "\n" + "Acceleration Z: " + acceleration.z + "\n" + "Timestamp: " + acceleration.timestamp); } function onError() { console.log("onError!"); } navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
Output example:
Acceleration X: 0.00 Acceleration Y: 0.00 Acceleration Z: 9.82 Timestamp: 1456480118000
-
watchAcceleration
-
Gets the acceleration along the x, y, and z axes at a regular interval.
DOMString watchAcceleration(AccelerometerSuccessCallback onsuccess, ErrorCallback onerror, optional AccelerationOptions? options);
Since: 3.0
Privilege level: public
Privilege: http://tizen.org/privilege/filesystem.read
Parameters:
- onsuccess: The callback method to be invoked with current acceleration values.
- onerror: The callback method called when errors occur.
- options [optional] [nullable]: Specifies the interval of calling successcallback in milliseconds. If not provided, default value for frequency is 10000 (10 seconds).
Return value:
-
DOMString:
DOMString The watch id that must be passed to clearWatch to stop watching.
Exceptions:
- TypeError
if any of the input parameters contains an invalid value.
Code example:
function onSuccess(acceleration) { console.log("Acceleration X: " + acceleration.x + "\n" + "Acceleration Y: " + acceleration.y + "\n" + "Acceleration Z: " + acceleration.z + "\n" + "Timestamp: " + acceleration.timestamp); console.log("Please wait 3 seconds for the next measurement..."); } function onError() { console.log("onError!"); } var options = {frequency: 3000}; /* Update every 3 seconds. */ var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
Output example:
Acceleration X: 0.00 Acceleration Y: 0.00 Acceleration Z: 9.82 Timestamp: 1456480118000 Please wait 3 seconds for the next measurement... Acceleration X: 0.00 Acceleration Y: 0.00 Acceleration Z: 9.82 Timestamp: 1456480121000 Please wait 3 seconds for the next measurement... (...)
-
clearWatch
-
Stop watching the Acceleration referenced by the watchID parameter.
void clearWatch(DOMString watchID);
Since: 3.0
Privilege level: public
Privilege: http://tizen.org/privilege/filesystem.read
Parameters:
- watchID: The id of the watch returned from watchAcceleration.
Exceptions:
- TypeError
if any of the input parameters contains an invalid value.
Code example:
var counter = 0, watchID; function onSuccess(acceleration) { console.log("Acceleration X: " + acceleration.x + "\n" + "Acceleration Y: " + acceleration.y + "\n" + "Acceleration Z: " + acceleration.z + "\n" + "Timestamp: " + acceleration.timestamp); if (3 == ++counter) { navigator.accelerometer.clearWatch(watchID); } } function onError() { console.log("onError!"); } var options = {frequency: 30}; /* Update every 0.03 seconds. */ watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
Output example:
Acceleration X: 0.00 Acceleration Y: 0.00 Acceleration Z: 9.82 Timestamp: 1456483774000 Acceleration X: 0.00 Acceleration Y: 0.00 Acceleration Z: 9.82 Timestamp: 1456483774030 Acceleration X: 0.00 Acceleration Y: 0.00 Acceleration Z: 9.82 Timestamp: 1456483774060
1.3. Acceleration
[NoInterfaceObject] interface Acceleration { readonly attribute double x; readonly attribute double y; readonly attribute double z; readonly attribute long timestamp; };
Since: 3.0
Privilege level: public
Privilege: http://tizen.org/privilege/filesystem.read
Attributes
-
readonly
double xAmount of acceleration on the x-axis. (in m/s^2)
Since: 3.0
Privilege level: public
Privilege: http://tizen.org/privilege/filesystem.read
-
readonly
double yAmount of acceleration on the y-axis. (in m/s^2)
Since: 3.0
Privilege level: public
Privilege: http://tizen.org/privilege/filesystem.read
-
readonly
double zAmount of acceleration on the z-axis. (in m/s^2)
Since: 3.0
Privilege level: public
Privilege: http://tizen.org/privilege/filesystem.read
-
readonly
long timestampCreation timestamp in milliseconds.
Since: 3.0
Privilege level: public
Privilege: http://tizen.org/privilege/filesystem.read
1.4. AccelerationOptions
dictionary AccelerationOptions { long frequency; };
Since: 3.0
Dictionary members
- long frequency
-
Interval defining how often to retrieve Acceleration in milliseconds.
Since: 3.0
1.5. AccelerometerSuccessCallback
[Callback=FunctionOnly, NoInterfaceObject] interface AccelerometerSuccessCallback { void onsuccess(Acceleration acceleration); };
Since: 3.0
Methods
-
onsuccess
-
void onsuccess(Acceleration acceleration);
Since: 3.0
Parameters:
- acceleration: The acceleration at a single moment in time.
1.6. ErrorCallback
[Callback=FunctionOnly, NoInterfaceObject] interface ErrorCallback { void onerror(DOMException error); };
Since: 3.0
Methods
-
onerror
-
Success
void onerror(DOMException error);
Since: 3.0
Parameters:
- error: Error object containing some information about the error.
2. Related Feature
To guarantee that the DeviceMotion application runs on a device with the DeviceMotion feature declare the following feature requirements in the config file:
3. Full WebIDL
module DeviceMotion { dictionary AccelerationOptions { long frequency; }; Navigator implements AccelerometerManagerObject; [NoInterfaceObject] interface AccelerometerManagerObject { readonly attribute Accelerometer accelerometer; }; [NoInterfaceObject] interface Accelerometer { void getCurrentAcceleration(AccelerometerSuccessCallback onsuccess, ErrorCallback onerror) raises(TypeError); DOMString watchAcceleration(AccelerometerSuccessCallback onsuccess, ErrorCallback onerror, optional AccelerationOptions? options) raises(TypeError); void clearWatch(DOMString watchID) raises(TypeError); }; [NoInterfaceObject] interface Acceleration { readonly attribute double x; readonly attribute double y; readonly attribute double z; readonly attribute long timestamp; }; [Callback=FunctionOnly, NoInterfaceObject] interface AccelerometerSuccessCallback { void onsuccess(Acceleration acceleration); }; [Callback=FunctionOnly, NoInterfaceObject] interface ErrorCallback { void onerror(DOMException error); }; };