传感器sensor的使用
2015-12-16 21:16
429 查看
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());
}
}
}
}
相关文章推荐
- iOS开发UI篇—核心动画(基础动画)
- 【转】Windows Error Code(windows错误代码详解)
- in文件
- hadoop datanode启动失败
- CentOS 7.2安装详解
- hdoj Saving Beans 3037 (Lucas定理入门)
- iOS block里的self
- 深入理解IOS中的UIScrollView(附测试代码)
- BZOJ 1045 (UVa 11300) 数学分析 + 结论
- Redis文件事件处理用到的基本数据结构视图
- USACO Humble Numbers
- Qt 打开文件引发的种种操作方法!
- 数据库范式
- JAVASCRIPT中经典面试题
- [No000068]document.body.clientHeight 和 document.documentElement.clientHeight 的区别
- 学生成绩排序(直接插入,冒泡,快排,选择,堆排,2路归并)
- 15分钟学会git
- 深入理解Android 编译系统
- 远程连接ejabberd的mnesia数据库
- CCF-201509-2