光线传感器使用
開發(fā)使用光線傳感器不需要權(quán)限聲明。
使用光線傳感器比較簡單。(很多傳感器都是類似使用的)
1.獲取感情器管理服務(wù)。
SensorManager senserManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
2.獲取光線傳感器。
Sensor sensor = senserManager.getDefaultSensor(Sensor.TYPE_LIGHT);
3.編寫監(jiān)聽器。
SensorEventListener listener = new SensorEventListener() {@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {//當(dāng)傳感器精度發(fā)生變化時}@Overridepublic void onSensorChanged(SensorEvent event) {//當(dāng)傳感器監(jiān)測到的數(shù)值發(fā)生變化時}};4.注冊監(jiān)聽器。
senserManager.registerListener(listener, senser, SensorManager.SENSOR_ DELAY_NORMAL);
5.不使用時記得注銷監(jiān)聽器。
sensorManager.unregisterListener(listener);
直接上代碼,我這的布局為一個按鈕,數(shù)值變化使用log打印輸出。
package com.zq.sensoradapter;import android.app.PendingIntent;import android.content.Context; import android.content.Intent;import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager;import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button;public class MainActivity extends AppCompatActivity {public static final String TAG = "亮度";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_nfc);Button button = findViewById(R.id.sure_btn);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(!isLight){//注冊使用Sensor sensor = senserManager.getDefaultSensor(Sensor.TYPE_LIGHT);//傳感器管理選擇光感類型senserManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);isLight = true;}else {//注銷監(jiān)聽器使用senserManager.unregisterListener(listener);isLight = false;}}});initLight();}private boolean isLight = false;private SensorEventListener listener;//傳感器監(jiān)聽private SensorManager senserManager;//傳感器管理/*** 初始化光感器*/private void initLight() {senserManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);Sensor sensor = senserManager.getDefaultSensor(Sensor.TYPE_LIGHT);listener = new SensorEventListener() {@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {//當(dāng)傳感器精度發(fā)生變化時Log.e(TAG,"當(dāng)傳感器精度發(fā)生變化時=" + accuracy);}@Overridepublic void onSensorChanged(SensorEvent event) {//當(dāng)傳感器監(jiān)測到的數(shù)值發(fā)生變化時 數(shù)組的第一個值代表著當(dāng)前的光照強度 "lx(勒克斯)"Log.e(TAG,"當(dāng)傳感器監(jiān)測到的數(shù)值發(fā)生變化時=" + event.values[0]);}};}@Overrideprotected void onDestroy() {super.onDestroy();senserManager.unregisterListener(listener); }}總結(jié)
- 上一篇: 手把手教你搭建SpringCloud项目
- 下一篇: 冰蝎的前世今生:3.0新版本下的一些防护