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());
}
}
}
}
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());
}
}
}
}