传感器sensor的使用

package com.example.sensortest;


import java.util.List;


import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


/*
 *(1) 主要获得当前本地机器传感器的种类
 *(2)将传感器注册到应用当中

 * */
@SuppressLint("NewApi")
public class SensorActivity extends Activity {



private  Button scanSensor;
private  SensorManager sensorManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sensor);
scanSensor=(Button)findViewById(R.id.sensors);


scanSensor.setOnClickListener(new SensorListener() );
//获取SensorManager对象,用来管理本地的传感器
sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
//获取本地所有的传感器

//得到光线传感器
Sensor lightsensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
//将传感器注册到应用程序当中
sensorManager.registerListener(new SensorEventListener(){



//传感器的数值有变化的时候
@Override
public void onAccuracyChanged(Sensor sensor, int arg1) {
}


//当传感器有变化的时候,该函数就会执行event对象会携带传感器的值,名称等一些信息
/*
* 最后一个参数设置传感器的采样率,一共有四个值
* */
@Override
public void onSensorChanged(SensorEvent event) {
event.sensor.getName();
event.sensor.getVendor();
event.sensor.getType();
long time=event.timestamp;
float acc=event.accuracy;
float lux=event.values[0];//光线变化的值
System.out.println(acc+"  "+lux);
}

}, lightsensor, SensorManager.SENSOR_DELAY_NORMAL);
}

/*
* 这个监听就是获取所有的本地传感器
* */
class SensorListener implements OnClickListener{


@Override
public void onClick(View view) {
List<Sensor> sensors=sensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor:sensors){
System.out.println(sensor.getName()+"  "+sensor.getMinDelay());
}

}

}



}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值