This article describes the calling method of light sensor in Android programming. Share it for your reference, as follows:
If you want to use sensors, you must do itSensorEventListenerinterface
2. Get sensor management object (sensormanager)
3. UseMethod Register the specified sensor
4. Insensoreventlistener In the interfaceonsensorchangedandonaccuracychangedComplete other specific tasks in the method
public class TestActivity extends Activity { private SensorManager sensorManager; //Step 3: Monitor the sensor signal private SensorEventListener listener = new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { //Sign up the current light intensity (, "Current light intensity:" + [0] + "Lux", Toast.LENGTH_SHORT).show(); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } }; @Override protected void onCreate(Bundle savedInstanceState) { (savedInstanceState); setContentView(.activity_main); //Step 1: Get the instance of SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); //Step 2: Obtain the Sensor sensor type Sensor sensor = (Sensor.TYPE_LIGHT); //Step 4: Register SensorEventListener (listener,sensor,SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onDestroy() { (); //The sensor is used, freeing up resources if(sensorManager!=null){ (listener); } } }
Sensor Type
Acceleration sensor (Sensor.TYPE_ACCELEROMETER
)
Magnetic field sensor (Sensor.TYPE_MAGNETIC_FLELD
)
Light sensor (Sensor.TYPE_LIGHT
)
Direction sensor (TYPE_ORIENTATION
)
Values
Accelerometer(Accelerating sensor)
values[0]: Acceleration along the x-axis direction
values[1]: Acceleration along the y-axis direction
values[2] : acceleration along the z-axis direction, that is, gravity acceleration
Gravity(Grain sensor)
The three elements in the values array represent the gravity magnitude of the x-axis, y-axis and z-axis respectively.
Light(Light sensor)
The values array only has the first element, values[0], which means the intensity of the light, and the maximum value is 120000.0f.
Gyroscope(Gyro sensor)
values, respectively represent the angular velocity of the rotation of the x, y, and z axes
Orientation(Direction Sensor)
values[0]: This value indicates the orientation, that is, the angle of the phone rotating around the z-axis. 0 indicates north (north), 90 indicates east (east), 180 indicates south (south), 270 indicates west (west)
values[1]: indicates the inclination. When the x-axis is inclined, this value changes, -180<= vaules[1] <= 180
values[2]: represents the rolling angle along the y-axis, -90<=values[2] <=90
In Android 2.3 sdk, it is not recommended to usesensor.TYPE_ORIENTATION
, values[0] value, sometimes exceptions appear. Officially recommendedMethod to get the right direction
Value update speed
SENSOR_DELAY_FASTEST: Obtain sensor data at the fastest speed
SENSOR_DELAY_GAME: Suitable for obtaining sensor data in the game
SENSOR_DELAY_NORMAL: Obtain sensor data at normal speed
SENSOR_DELAY_UI: Suitable for obtaining data in ui space
For more information about Android related content, please check out the topic of this site:Summary of the usage of basic Android components》、《Android View View Tips Summary》、《Android layout layout tips summary》、《Android resource operation skills summary》、《Android file operation skills summary》、《Android development introduction and advanced tutorial》、《Android programming activity operation skills summary"and"Android control usage summary》
I hope this article will be helpful to everyone's Android programming design.