光线传感器使用


开发使用光线传感器不需要权限声明。

使用光线传感器比较简单。(很多传感器都是类似使用的)

1.获取感情器管理服务。

SensorManager senserManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

2.获取光线传感器。

Sensor sensor = senserManager.getDefaultSensor(Sensor.TYPE_LIGHT);

3.编写监听器。

SensorEventListener listener = new SensorEventListener() {

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        //当传感器精度发生变化时
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        //当传感器监测到的数值发生变化时
    }

};

4.注册监听器。

senserManager.registerListener(listener, senser, SensorManager.SENSOR_ DELAY_NORMAL);

5.不使用时记得注销监听器。

sensorManager.unregisterListener(listener);

直接上代码,我这的布局为一个按钮,数值变化使用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 = "亮度";



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_nfc);

        Button button = findViewById(R.id.sure_btn);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            if(!isLight){
                //注册使用
                Sensor sensor = senserManager.getDefaultSensor(Sensor.TYPE_LIGHT);//传感器管理选择光感类型
                senserManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);
                isLight = true;
            }else {
                //注销监听器使用
                senserManager.unregisterListener(listener);
                isLight = false;
            }
            }
        });
        
        initLight();
    }
    private boolean isLight = false;
    private SensorEventListener listener;//传感器监听
    private SensorManager senserManager;//传感器管理
    /**
     * 初始化光感器
     */
    private void initLight() {
        senserManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        Sensor sensor = senserManager.getDefaultSensor(Sensor.TYPE_LIGHT);
        listener = new SensorEventListener() {

            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
                //当传感器精度发生变化时
                Log.e(TAG,"当传感器精度发生变化时=" + accuracy);
            }

            @Override
            public void onSensorChanged(SensorEvent event) {
                //当传感器监测到的数值发生变化时   数组的第一个值代表着当前的光照强度 "lx(勒克斯)"
                Log.e(TAG,"当传感器监测到的数值发生变化时=" + event.values[0]);
            }

        };

    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        senserManager.unregisterListener(listener);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值