Вы находитесь на странице: 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

Вам также может понравиться