0% found this document useful (0 votes)
41 views

Sensors Overview - Android Developers

The document discusses Android sensors and provides an overview of the sensor framework. It describes the main sensor classes like Sensor, SensorManager, and SensorEventListener. It explains the different types of sensors available on Android devices like accelerometers, gyroscopes, magnetometers. It also covers how to register a listener to receive sensor events, retrieve sensor data, and handle accuracy changes.

Uploaded by

dfdgdfg
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

Sensors Overview - Android Developers

The document discusses Android sensors and provides an overview of the sensor framework. It describes the main sensor classes like Sensor, SensorManager, and SensorEventListener. It explains the different types of sensors available on Android devices like accelerometers, gyroscopes, magnetometers. It also covers how to register a listener to receive sensor events, retrieve sensor data, and handle accuracy changes.

Uploaded by

dfdgdfg
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Sensors Overview | Android Developers

1 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

Sensor
SensorEvent
SensorManager
SensorEventListener

02-02-2016 12:53

Sensors Overview | Android Developers

2 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

02-02-2016 12:53

Sensors Overview | Android Developers

3 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

TYPE_ACCELEROMETER

TYPE_AMBIENT_TEMPERATURE

TYPE_GRAVITY

TYPE_GYROSCOPE

TYPE_LIGHT

TYPE_LINEAR_ACCELERATION

02-02-2016 12:53

Sensors Overview | Android Developers

4 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

TYPE_MAGNETIC_FIELD

TYPE_ORIENTATION

getRotationMatrix()

TYPE_PRESSURE

TYPE_PROXIMITY

TYPE_RELATIVE_HUMIDITY

TYPE_ROTATION_VECTOR

TYPE_TEMPERATURE

02-02-2016 12:53

Sensors Overview | Android Developers

5 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

TYPE_AMBIENT_TEMPERATURE

android.hardware

SensorManager

Sensor

SensorEvent

SensorEventListener

02-02-2016 12:53

Sensors Overview | Android Developers

6 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

TYPE_ACCELEROMETER
TYPE_AMBIENT_TEMPERATURE

02-02-2016 12:53

Sensors Overview | Android Developers

7 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

TYPE_GRAVITY
TYPE_GYROSCOPE
TYPE_LIGHT
TYPE_LINEAR_ACCELERATION
TYPE_MAGNETIC_FIELD
TYPE_ORIENTATION
TYPE_PRESSURE
TYPE_PROXIMITY
TYPE_RELATIVE_HUMIDITY
TYPE_ROTATION_VECTOR
TYPE_TEMPERATURE

SensorManager
getSystemService()
SENSOR_SERVICE

private SensorManager mSensorManager;


...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE

getSensorList()

TYPE_ALL

List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL

02-02-2016 12:53

Sensors Overview | Android Developers

8 of 16

TYPE_ALL
TYPE_LINEAR_ACCELERATION

http://developer.android.com/guide/topics/sensors/sensors_overview.html

TYPE_GYROSCOPE
TYPE_GRAVITY

getDefaultSensor()

private SensorManager mSensorManager;


...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE
if (mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) !=
// Success! There's a magnetometer.
}
else {
// Failure! No magnetometer.
}

Sensor

getResolution()
getMaximumRange()
getPower()

getVendor()

getVersion()

02-02-2016 12:53

Sensors Overview | Android Developers

9 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

private SensorManager mSensorManager;


private Sensor mSensor;
...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE
if (mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY) != null){
List<Sensor> gravSensors = mSensorManager.getSensorList(Sensor.TYPE_GRAVITY
for(int i=0; i<gravSensors.size(); i++) {
if ((gravSensors.get(i).getVendor().contains("Google Inc.")) &&
(gravSensors.get(i).getVersion() == 3)){
// Use the version 3 gravity sensor.
mSensor = gravSensors.get(i);
}
}
}
else{
// Use the accelerometer.
if (mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) !=
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER
}
else{
// Sorry, there are no accelerometers on your device.
// You can't play this game.
}
}

getMinDelay()

getMinDelay()

getMinDelay()

getMinDelay()

02-02-2016 12:53

Sensors Overview | Android Developers

10 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

SensorEventListener
onAccuracyChanged()

onSensorChanged()

onAccuracyChanged()
Sensor

SENSOR_STATUS_ACCURACY_LOW
SENSOR_STATUS_ACCURACY_MEDIUM

SENSOR_STATUS_ACCURACY_HIGH

SENSOR_STATUS_UNRELIABLE

onSensorChanged()
SensorEvent

SensorEvent

onSensorChanged()

TextView

sensor_data

public class SensorActivity extends Activity implements SensorEventListener


private SensorManager mSensorManager;
private Sensor mLight;
@Override
public final void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE
mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
}
@Override
public final void onAccuracyChanged(Sensor sensor, int accuracy)
// Do something here if sensor accuracy changes.
}
@Override
public final void onSensorChanged(SensorEvent event) {
// The light sensor returns a single value.
// Many sensors return 3 values, one for each axis.

02-02-2016 12:53

Sensors Overview | Android Developers

11 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

float lux = event.values[0];


// Do something with this sensor value.
}
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mLight, SensorManager.SENSOR_DELAY_NORMAL
}
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
}

SENSOR_DELAY_NORMAL
registerListener()

onSensorChanged()

SENSOR_DELAY_GAME

SENSOR_DELAY_UI
SENSOR_DELAY_FASTEST

onResume()
onPause()

02-02-2016 12:53

Sensors Overview | Android Developers

12 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

private SensorManager mSensorManager;


...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE
if (mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) != null
// Success! There's a pressure sensor.
}
else {
// Failure! No pressure sensor.
}

02-02-2016 12:53

Sensors Overview | Android Developers

13 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

<usesfeature>

<uses-feature>

<uses-feature android:name="android.hardware.sensor.accelerometer"
android:required="true" />

android:required="true"

<uses-feature>
android:required="false"

02-02-2016 12:53

Sensors Overview | Android Developers

14 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

getRotation()
remapCoordinateSystem()

getOrientation()

getRotationMatrix()

02-02-2016 12:53

Sensors Overview | Android Developers

15 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

onPause()

private SensorManager mSensorManager;


...
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}

unregisterListener(SensorEventListener)

onSensorChanged(SensorEvent)
onSensorChanged(SensorEvent)

onSensorChanged(SensorEvent)

TYPE_ORIENTATION
getOrientation()
TYPE_TEMPERATURE
TYPE_AMBIENT_TEMPERATURE

02-02-2016 12:53

Sensors Overview | Android Developers

16 of 16

http://developer.android.com/guide/topics/sensors/sensors_overview.html

registerListener()

English

02-02-2016 12:53

You might also like