|
Build 1.1_r1 (from source) | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectandroid.os.Binder
android.view.IRotationWatcher.Stub
android.hardware.SensorManager
public class SensorManager
Class that lets you access the device's sensors. Get an instance of this
class by calling Context.getSystemService() with an argument of Context.SENSOR_SERVICE.
| Nested Class Summary | |
|---|---|
(package private) class |
SensorManager.LmsFilter
|
| Nested classes/interfaces inherited from interface android.view.IRotationWatcher |
|---|
IRotationWatcher.Stub |
| Nested classes/interfaces inherited from interface android.os.IBinder |
|---|
IBinder.DeathRecipient |
| Field Summary | |
|---|---|
static int |
AXIS_MINUS_X
see remapCoordinateSystem(float[], int, int, float[]) |
static int |
AXIS_MINUS_Y
see remapCoordinateSystem(float[], int, int, float[]) |
static int |
AXIS_MINUS_Z
see remapCoordinateSystem(float[], int, int, float[]) |
static int |
AXIS_X
see remapCoordinateSystem(float[], int, int, float[]) |
static int |
AXIS_Y
see remapCoordinateSystem(float[], int, int, float[]) |
static int |
AXIS_Z
see remapCoordinateSystem(float[], int, int, float[]) |
static int |
DATA_X
Deprecated. |
static int |
DATA_Y
Deprecated. |
static int |
DATA_Z
Deprecated. |
static float |
GRAVITY_DEATH_STAR_I
|
static float |
GRAVITY_EARTH
|
static float |
GRAVITY_JUPITER
|
static float |
GRAVITY_MARS
|
static float |
GRAVITY_MERCURY
|
static float |
GRAVITY_MOON
|
static float |
GRAVITY_NEPTUNE
|
static float |
GRAVITY_PLUTO
|
static float |
GRAVITY_SATURN
|
static float |
GRAVITY_SUN
values returned by the accelerometer in various locations in the universe. |
static float |
GRAVITY_THE_ISLAND
|
static float |
GRAVITY_URANUS
|
static float |
GRAVITY_VENUS
|
static float |
LIGHT_CLOUDY
|
static float |
LIGHT_FULLMOON
Various luminance values during the night (lux) |
static float |
LIGHT_NO_MOON
|
static float |
LIGHT_OVERCAST
|
static float |
LIGHT_SHADE
|
static float |
LIGHT_SUNLIGHT
|
static float |
LIGHT_SUNLIGHT_MAX
Various luminance values during the day (lux) |
static float |
LIGHT_SUNRISE
|
static float |
MAGNETIC_FIELD_EARTH_MAX
Maximum magnetic field on Earth's surface |
static float |
MAGNETIC_FIELD_EARTH_MIN
Minimum magnetic field on Earth's surface |
(package private) Looper |
mMainLooper
|
static int |
RAW_DATA_INDEX
Deprecated. |
static int |
RAW_DATA_X
Deprecated. |
static int |
RAW_DATA_Y
Deprecated. |
static int |
RAW_DATA_Z
Deprecated. |
static int |
SENSOR_ACCELEROMETER
Deprecated. use Sensor instead. |
static int |
SENSOR_ALL
Deprecated. |
static int |
SENSOR_DELAY_FASTEST
get sensor data as fast as possible |
static int |
SENSOR_DELAY_GAME
rate suitable for games |
static int |
SENSOR_DELAY_NORMAL
rate (default) suitable for screen orientation changes |
static int |
SENSOR_DELAY_UI
rate suitable for the user interface |
static int |
SENSOR_LIGHT
Deprecated. use Sensor instead. |
static int |
SENSOR_MAGNETIC_FIELD
Deprecated. use Sensor instead. |
static int |
SENSOR_MAX
Deprecated. |
static int |
SENSOR_MIN
Deprecated. |
static int |
SENSOR_ORIENTATION
Deprecated. use Sensor instead. |
static int |
SENSOR_ORIENTATION_RAW
Deprecated. use Sensor instead. |
static int |
SENSOR_PROXIMITY
Deprecated. use Sensor instead. |
static int |
SENSOR_STATUS_ACCURACY_HIGH
This sensor is reporting data with maximum accuracy |
static int |
SENSOR_STATUS_ACCURACY_LOW
This sensor is reporting data with low accuracy, calibration with the environment is needed |
static int |
SENSOR_STATUS_ACCURACY_MEDIUM
This sensor is reporting data with an average level of accuracy, calibration with the environment may improve the readings |
static int |
SENSOR_STATUS_UNRELIABLE
The values returned by this sensor cannot be trusted, calibration is needed or the environment doesn't allow readings |
static int |
SENSOR_TEMPERATURE
Deprecated. use Sensor instead. |
static int |
SENSOR_TRICORDER
Deprecated. use Sensor instead. |
(package private) static SparseArray<Sensor> |
sHandleToSensor
|
(package private) static ArrayList<android.hardware.SensorManager.ListenerDelegate> |
sListeners
|
static float |
STANDARD_GRAVITY
Standard gravity (g) on Earth. |
| Fields inherited from interface android.os.IBinder |
|---|
DUMP_TRANSACTION, FIRST_CALL_TRANSACTION, FLAG_ONEWAY, INTERFACE_TRANSACTION, LAST_CALL_TRANSACTION, PING_TRANSACTION |
| Constructor Summary | |
|---|---|
SensorManager(Looper mainLooper)
|
|
| Method Summary | |
|---|---|
Sensor |
getDefaultSensor(int type)
Use this method to get the default sensor for a given type. |
static float |
getInclination(float[] I)
Computes the geomagnetic inclination angle in radians from the inclination matrix I returned by getRotationMatrix(float[], float[], float[], float[]). |
static float[] |
getOrientation(float[] R,
float[] values)
Computes the device's orientation based on the rotation matrix. |
(package private) static int |
getRotation()
|
static boolean |
getRotationMatrix(float[] R,
float[] I,
float[] gravity,
float[] geomagnetic)
Computes the inclination matrix I as well as the rotation matrix R transforming a vector from the device coordinate system to the world's coordinate system which is defined as a direct orthonormal basis, where: X is defined as the vector product Y.Z (It is tangential to the ground at the device's current location and roughly points East). Y is tangential to the ground at the device's current location and points towards the magnetic North Pole. Z points towards the sky and is perpendicular to the ground. |
List<Sensor> |
getSensorList(int type)
Use this method to get the list of available sensors of a certain type. |
int |
getSensors()
Deprecated. This method is deprecated, use getSensorList(int) instead |
void |
onRotationChanged(int rotation)
|
boolean |
registerListener(SensorEventListener listener,
Sensor sensor,
int rate)
Registers a SensorEventListener
for the given sensor. |
boolean |
registerListener(SensorEventListener listener,
Sensor sensor,
int rate,
Handler handler)
Registers a SensorEventListener
for the given sensor. |
boolean |
registerListener(SensorListener listener,
int sensors)
Deprecated. This method is deprecated, use registerListener(SensorEventListener, Sensor, int)
instead. |
boolean |
registerListener(SensorListener listener,
int sensors,
int rate)
Deprecated. This method is deprecated, use registerListener(SensorEventListener, Sensor, int)
instead. |
static boolean |
remapCoordinateSystem(float[] inR,
int X,
int Y,
float[] outR)
Rotates the supplied rotation matrix so it is expressed in a different coordinate system. |
(package private) static int |
sensors_data_close()
|
(package private) static int |
sensors_data_init()
|
(package private) static int |
sensors_data_open(FileDescriptor fd)
|
(package private) static int |
sensors_data_poll(float[] values,
int[] status,
long[] timestamp)
|
(package private) static int |
sensors_data_uninit()
|
void |
unregisterListener(SensorEventListener listener)
Unregisters a listener for all sensors. |
void |
unregisterListener(SensorEventListener listener,
Sensor sensor)
Unregisters a listener for the sensors with which it is registered. |
void |
unregisterListener(SensorListener listener)
Deprecated. This method is deprecated, use unregisterListener(SensorEventListener)
instead. |
void |
unregisterListener(SensorListener listener,
int sensors)
Deprecated. This method is deprecated, use unregisterListener(SensorEventListener, Sensor)
instead. |
| Methods inherited from class android.view.IRotationWatcher.Stub |
|---|
asBinder, asInterface, onTransact |
| Methods inherited from class android.os.Binder |
|---|
attachInterface, clearCallingIdentity, dump, finalize, flushPendingCommands, getCallingPid, getCallingUid, getInterfaceDescriptor, isBinderAlive, joinThreadPool, linkToDeath, pingBinder, queryLocalInterface, restoreCallingIdentity, transact, unlinkToDeath |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
@Deprecated public static final int SENSOR_ORIENTATION
Sensor instead.SensorListener for more details.
@Deprecated public static final int SENSOR_ACCELEROMETER
Sensor instead.SensorListener for more details.
@Deprecated public static final int SENSOR_TEMPERATURE
Sensor instead.SensorListener for more details.
@Deprecated public static final int SENSOR_MAGNETIC_FIELD
Sensor instead.SensorListener for more details.
@Deprecated public static final int SENSOR_LIGHT
Sensor instead.SensorListener for more details.
@Deprecated public static final int SENSOR_PROXIMITY
Sensor instead.SensorListener for more details.
@Deprecated public static final int SENSOR_TRICORDER
Sensor instead.SensorListener for more details.
@Deprecated public static final int SENSOR_ORIENTATION_RAW
Sensor instead.SensorListener for more details.
@Deprecated public static final int SENSOR_ALL
@Deprecated public static final int SENSOR_MIN
@Deprecated public static final int SENSOR_MAX
@Deprecated public static final int DATA_X
SensorListener.onSensorChanged(int, float[])
@Deprecated public static final int DATA_Y
SensorListener.onSensorChanged(int, float[])
@Deprecated public static final int DATA_Z
SensorListener.onSensorChanged(int, float[])
@Deprecated public static final int RAW_DATA_INDEX
SensorListener.onSensorChanged(int, float[])
@Deprecated public static final int RAW_DATA_X
SensorListener.onSensorChanged(int, float[])
@Deprecated public static final int RAW_DATA_Y
SensorListener.onSensorChanged(int, float[])
@Deprecated public static final int RAW_DATA_Z
SensorListener.onSensorChanged(int, float[])
public static final float STANDARD_GRAVITY
public static final float GRAVITY_SUN
public static final float GRAVITY_MERCURY
public static final float GRAVITY_VENUS
public static final float GRAVITY_EARTH
public static final float GRAVITY_MOON
public static final float GRAVITY_MARS
public static final float GRAVITY_JUPITER
public static final float GRAVITY_SATURN
public static final float GRAVITY_URANUS
public static final float GRAVITY_NEPTUNE
public static final float GRAVITY_PLUTO
public static final float GRAVITY_DEATH_STAR_I
public static final float GRAVITY_THE_ISLAND
public static final float MAGNETIC_FIELD_EARTH_MAX
public static final float MAGNETIC_FIELD_EARTH_MIN
public static final float LIGHT_SUNLIGHT_MAX
public static final float LIGHT_SUNLIGHT
public static final float LIGHT_SHADE
public static final float LIGHT_OVERCAST
public static final float LIGHT_SUNRISE
public static final float LIGHT_CLOUDY
public static final float LIGHT_FULLMOON
public static final float LIGHT_NO_MOON
public static final int SENSOR_DELAY_FASTEST
public static final int SENSOR_DELAY_GAME
public static final int SENSOR_DELAY_UI
public static final int SENSOR_DELAY_NORMAL
public static final int SENSOR_STATUS_UNRELIABLE
public static final int SENSOR_STATUS_ACCURACY_LOW
public static final int SENSOR_STATUS_ACCURACY_MEDIUM
public static final int SENSOR_STATUS_ACCURACY_HIGH
public static final int AXIS_X
remapCoordinateSystem(float[], int, int, float[])
public static final int AXIS_Y
remapCoordinateSystem(float[], int, int, float[])
public static final int AXIS_Z
remapCoordinateSystem(float[], int, int, float[])
public static final int AXIS_MINUS_X
remapCoordinateSystem(float[], int, int, float[])
public static final int AXIS_MINUS_Y
remapCoordinateSystem(float[], int, int, float[])
public static final int AXIS_MINUS_Z
remapCoordinateSystem(float[], int, int, float[])
Looper mMainLooper
static SparseArray<Sensor> sHandleToSensor
static final ArrayList<android.hardware.SensorManager.ListenerDelegate> sListeners
| Constructor Detail |
|---|
public SensorManager(Looper mainLooper)
| Method Detail |
|---|
@Deprecated public int getSensors()
getSensorList(int) instead
public List<Sensor> getSensorList(int type)
Sensor.TYPE_ALL to get all
the sensors.
type - of sensors requested
public Sensor getDefaultSensor(int type)
getSensorList.
type - of sensors requested
@Deprecated
public boolean registerListener(SensorListener listener,
int sensors)
registerListener(SensorEventListener, Sensor, int)
instead.
listener - sensor listener objectsensors - a bit masks of the sensors to register to
@Deprecated
public boolean registerListener(SensorListener listener,
int sensors,
int rate)
registerListener(SensorEventListener, Sensor, int)
instead.
listener - sensor listener objectsensors - a bit masks of the sensors to register torate - rate of events. This is only a hint to the system. events
may be received faster or slower than the specified rate. Usually events
are received faster.
@Deprecated
public void unregisterListener(SensorListener listener,
int sensors)
unregisterListener(SensorEventListener, Sensor)
instead.
listener - a SensorListener objectsensors - a bit masks of the sensors to unregister from@Deprecated public void unregisterListener(SensorListener listener)
unregisterListener(SensorEventListener)
instead.
listener - a SensorListener object
public void unregisterListener(SensorEventListener listener,
Sensor sensor)
listener - a SensorEventListener objectsensor - the sensor to unregister frompublic void unregisterListener(SensorEventListener listener)
listener - a SensorListener object
public boolean registerListener(SensorEventListener listener,
Sensor sensor,
int rate)
SensorEventListener
for the given sensor.
listener - A SensorEventListener object.sensor - The Sensor to register to.rate - The rate sensor events are delivered at.
This is only a hint to the system. Events may be received faster or
slower than the specified rate. Usually events are received faster.
public boolean registerListener(SensorEventListener listener,
Sensor sensor,
int rate,
Handler handler)
SensorEventListener
for the given sensor.
listener - A SensorEventListener object.sensor - The Sensor to register to.rate - The rate sensor events are delivered at.
This is only a hint to the system. Events may be received faster or
slower than the specified rate. Usually events are received faster.handler - The Handler the
sensor events will be delivered to.
public static boolean getRotationMatrix(float[] R,
float[] I,
float[] gravity,
float[] geomagnetic)
By definition:
[0 0 g] = R * gravity (g = magnitude of gravity)
[0 m 0] = I * R * geomagnetic (m = magnitude of geomagnetic field)
R is the identity matrix when the device is aligned with the world's coordinate system, that is, when the device's X axis points toward East, the Y axis points to the North Pole and the device is facing the sky.
I is a rotation matrix transforming the geomagnetic
vector into the same coordinate space as gravity (the world's coordinate
space). I is a simple rotation around the X axis.
The inclination angle in radians can be computed with
getInclination(float[]).
Each matrix is returned either as a 3x3 or 4x4 row-major matrix depending on the length of the passed array:
If the array length is 16:
/ M[ 0] M[ 1] M[ 2] M[ 3] \ | M[ 4] M[ 5] M[ 6] M[ 7] | | M[ 8] M[ 9] M[10] M[11] | \ M[12] M[13] M[14] M[15] /This matrix is ready to be used by OpenGL ES's
glLoadMatrixf(float[], int).
Note that because OpenGL matrices are column-major matrices you must transpose the matrix before using it. However, since the matrix is a rotation matrix, its transpose is also its inverse, conveniently, it is often the inverse of the rotation that is needed for rendering; it can therefore be used with OpenGL ES directly.
Also note that the returned matrices always have this form:
/ M[ 0] M[ 1] M[ 2] 0 \ | M[ 4] M[ 5] M[ 6] 0 | | M[ 8] M[ 9] M[10] 0 | \ 0 0 0 1 /
If the array length is 9:
/ M[ 0] M[ 1] M[ 2] \ | M[ 3] M[ 4] M[ 5] | \ M[ 6] M[ 7] M[ 8] /
The inverse of each matrix can be computed easily by taking its transpose.
The matrices returned by this function are meaningful only when the device is not free-falling and it is not close to the magnetic north. If the device is accelerating, or placed into a strong magnetic field, the returned matrices may be inaccurate.
R - is an array of 9 floats holding the rotation matrix R
when this function returns. R can be null.I - is an array of 9 floats holding the rotation matrix I
when this function returns. I can be null.gravity - is an array of 3 floats containing the gravity vector
expressed in the device's coordinate. You can simply use the
values
returned by a SensorEvent of a
Sensor of type
TYPE_ACCELEROMETER.geomagnetic - is an array of 3 floats containing the geomagnetic
vector expressed in the device's coordinate. You can simply use the
values
returned by a SensorEvent of a
Sensor of type
TYPE_MAGNETIC_FIELD.
false on failure (for instance, if the device is in free fall). On failure the output matrices are not modified.
public static float getInclination(float[] I)
getRotationMatrix(float[], float[], float[], float[]).
I - inclination matrix see getRotationMatrix(float[], float[], float[], float[]).
public static boolean remapCoordinateSystem(float[] inR,
int X,
int Y,
float[] outR)
getOrientation(float[], float[])) in a different coordinate system.
When the rotation matrix is used for drawing (for instance with OpenGL ES), it usually doesn't need to be transformed by this function, unless the screen is physically rotated, such as when used in landscape mode.
Examples:
remapCoordinateSystem(inR, AXIS_X, AXIS_Z, outR);
remapCoordinateSystem(inR, AXIS_Y, AXIS_MINUS_X, outR);
Beware of the above example. This call is needed only if the device is
physically used in landscape mode to calculate the rotation angles (see
getOrientation(float[], float[])).
If the rotation matrix is also used for rendering, it may not need to
be transformed, for instance if your Activity is running in landscape mode.
Since the resulting coordinate system is orthonormal, only two axes need to be specified.
inR - the rotation matrix to be transformed. Usually it is the
matrix returned by getRotationMatrix(float[], float[], float[], float[]).X - defines on which world axis and direction the X axis of the
device is mapped.Y - defines on which world axis and direction the Y axis of the
device is mapped.outR - the transformed rotation matrix. inR and outR can be the same
array, but it is not recommended for performance reason.
public static float[] getOrientation(float[] R,
float[] values)
When it returns, the array values is filled with the result:
R - rotation matrix see getRotationMatrix(float[], float[], float[], float[]).values - an array of 3 floats to hold the result.
public void onRotationChanged(int rotation)
static int getRotation()
static int sensors_data_init()
static int sensors_data_uninit()
static int sensors_data_open(FileDescriptor fd)
static int sensors_data_close()
static int sensors_data_poll(float[] values,
int[] status,
long[] timestamp)
|
Build 1.1_r1 (from source) | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||