Android开发--传感器介绍
获取手机中的传感器的步骤为:
- 获取SensorManager对象
- 执行SensorManager对象的getDefaultSensor()方法获取Sensor对象,这里getDefaultSensor()方法要传递一个参数,指定具体的传感器类型
- 获取Sensor对象中的各种属性
Log.d("BruceZhang", "以下是你的手机里的传感器:");List<Sensor> sensors=sensorManager.getSensorList(Sensor.TYPE_ALL);Log.d("BruceZhang", "--->");for(Sensor sensor: sensors){Log.d("BruceZhang", sensor.getName());}//通过使用getDefaultSensor方法获得一个特定的传感器
// Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
在知道怎么获取传感器之后,我们需要使用程序获取传感器的值,下面给出实例代码:
SensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);sensorManager.registerListener(new SensorEventListener() {/** SensorEvent event* 一旦传感器感知外界条件发生变化,就会把相应的数据传递给这个对象* 一般会把这个方法放在onCreate里,不用手动的去获取*/@Overridepublic void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stubfloat auc=event.accuracy;//这里的第一个元素代表的是光线的强度float lux=event.values[0];Log.d("BruceZhang", auc+"");Log.d("BruceZhang", lux+"");}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub}}, sensor, SensorManager.SENSOR_DELAY_NORMAL);//SensorManager.SENSOR_DELAY_NORMAL//这个参数就是设置传感器的采样率}
传感器有一系列的属性:
a) SENSOR_DELAY_NOMAL (200000微秒)
b) SENSOR_DELAY_UI (60000微秒)
c) SENSOR_DELAY_GAME (20000微秒)
d) SENSOR_DELAY_FASTEST (0微秒)
2、传感器的属性
a) 传感器的名称
b) 传感器制造商
c) 传感器功率
d) 传感器的resulotion
SensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);sensorManager.registerListener(new SensorEventListener() {@Overridepublic void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stub//传感器的名字String sensorName=event.sensor.getName();//传感器制造商的名字String sensorVendor=event.sensor.getVendor();//传感器的分辨率,传感器所能识别的最小的精度是多少float sensorRevolution=event.sensor.getResolution();//传感器的功率float sensorPower=event.sensor.getPower();//传感器取得数据的时间是多少double timeStamp=event.timestamp;//打印数据Log.d("BruceZhang", sensorName+"");Log.d("BruceZhang", sensorVendor+"");Log.d("BruceZhang", sensorRevolution+"");Log.d("BruceZhang", sensorPower+"");Log.d("BruceZhang", timeStamp+"");}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub}}, sensor, SensorManager.SENSOR_DELAY_NORMAL);}
下面实现的这个实例实现了上述内容的综合:
/** 传感器会通过传感器事件把值传给用户* 所以,我们的应用程序是被动的,等待传感器把数据传递给SensorEvent对象*/
public class MainActivity extends Activity {private Button button;private Button button2;private Button button3;private SensorManager sensorManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//得到SensorManager对象sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);button=(Button)findViewById(R.id.sensorButton);button2=(Button)findViewById(R.id.lightButton);button3=(Button)findViewById(R.id.lightButton2);button3.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);sensorManager.registerListener(new SensorEventListener() {@Overridepublic void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stub//传感器的名字String sensorName=event.sensor.getName();//传感器制造商的名字String sensorVendor=event.sensor.getVendor();//传感器的分辨率,传感器所能识别的最小的精度是多少float sensorRevolution=event.sensor.getResolution();//传感器的功率float sensorPower=event.sensor.getPower();//传感器取得数据的时间是多少double timeStamp=event.timestamp;//打印数据Log.d("BruceZhang", sensorName+"");Log.d("BruceZhang", sensorVendor+"");Log.d("BruceZhang", sensorRevolution+"");Log.d("BruceZhang", sensorPower+"");Log.d("BruceZhang", timeStamp+"");}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub}}, sensor, SensorManager.SENSOR_DELAY_NORMAL);}});button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);sensorManager.registerListener(new SensorEventListener() {/** SensorEvent event* 一旦传感器感知外界条件发生变化,就会把相应的数据传递给这个对象* 一般会把这个方法放在onCreate里,不用手动的去获取*/@Overridepublic void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stubfloat auc=event.accuracy;//这里的第一个元素代表的是光线的强度float lux=event.values[0];Log.d("BruceZhang", auc+"");Log.d("BruceZhang", lux+"");}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub}}, sensor, SensorManager.SENSOR_DELAY_NORMAL);//SensorManager.SENSOR_DELAY_NORMAL//这个参数就是设置传感器的采样率}});button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubLog.d("BruceZhang", "以下是你的手机里的传感器:");List<Sensor> sensors=sensorManager.getSensorList(Sensor.TYPE_ALL);Log.d("BruceZhang", "--->");for(Sensor sensor: sensors){Log.d("BruceZhang", sensor.getName());}//通过使用getDefaultSensor方法获得一个特定的传感器
// Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}
Android开发--传感器介绍相关推荐
- android studio开发工具介绍,Android应用开发之Android开发工具介绍、Android Studio配置...
本文将带你了解Android应用开发之Android开发工具介绍.Android Studio配置,希望本文对大家学Android有所帮助. 2.1 Android Studio配置 2.1.1 ...
- Pro Android 4 第一章 Android 开发平台介绍
当今这个时代,计算比以往任何一个时代都距离人们更近.各种手持设备已经变身为计算平台.无论是平板和是手机,移动设备凭借其强大的通用计算能力,已经成为真正意义上的个人电脑(PC).所有的传统计算机厂商已经 ...
- Kotlin on Android 开发环境介绍
Kotlin 被 Google 采纳为 Android 开发一级编程语言,到现在也一年多了,我们团队从去年 10 月份开始部分项目尝试用 Kotlin 开发,到现在决定推广到全部项目,因为一旦用上 K ...
- 基于人人网的Android开发流程介绍
人人网(www.renren.com)前身为校内网,是中国最大.最受用户欢迎的网络SNS平台.人人网目前针对不同领域的开发者,提供了相应的教程和文档,目前主要分为"站内应用开发". ...
- 《智能设备艺术、科技、文化作品实例开发与设计》android开发系列介绍---2.1棋类作品:华容道
第四章 棋类: 华容道 三子棋AI算法 手机棋牌开发的优点和缺点 与其他手机端游戏相比较,手机棋牌开发演化的手游竞技,与休闲性合二为一,游艺兼备.手游玩家随着公共WIFI的普及,参与门槛越来越低.加 ...
- 《智能设备艺术、科技、文化作品实例开发与设计》android开发系列介绍---1.2琴类作品:吉他new
第一章 琴类作品 1.2吉他开发 吉他是音乐中的乐器王子, 又叫六弦琴拥有广阔的音域,最丰富的现场表现力,华丽而高难度的指弹技巧,又是伴奏的神器,现场演唱出优美而漂亮的音乐,适合任何场合任何环境的表现 ...
- 《智能设备艺术、科技、文化作品实例开发与设计》android开发系列介绍---1.2琴类作品:吉他
第一章 琴类作品 1.2吉他开发 吉他是音乐中的乐器王子, 又叫六弦琴拥有广阔的音域,最丰富的现场表现力,华丽而高难度的指弹技巧,又是伴奏的神器,现场演唱出优美而漂亮的音乐,适合任何场合任何环境的表现 ...
- Android开发工具介绍
AndroidSDK:Android standard develop kits 安卓开发的工具集 目前主流的安卓开发工具: 1.Adnroid-Adt-bundle SDKManager.exe: ...
- Android开发--BroadcastReceiver介绍1
从名字中大概就知道了意思,BroadcastReceiver就是广播接收器的意思,它运行在后台,始终处于监听的状态,当有系统消息或用户自定义的消息到达时,回调onReceiver()函数,着这个例子中 ...
最新文章
- 这份HCIE-Routing Switching笔试试题,你能答对几道?
- 稀疏多项式的运算用链表_用漫画告诉你—什么是HashMap?
- mysql增删改查 dao_MYSQL 之 JDBC(七):增删改查(五) DAO设计模式
- python元编程运用_Python 中的元编程
- node本地连接服务器的数据库_Linux本地连接阿里云服务器,以及下载node.js配置环境...
- [书目20081126]转型:用对策略,做对事
- 基于JAVA+SpringMVC+Mybatis+MYSQL的在线书城购物网站
- (zt)ACE中的Proactor介绍和应用实例
- Chrome浏览器V43版本不支持silverlight 5.0的解决办法
- PMBOK--项目整合管理
- java实现数据库回滚,java 数据库操作,事宜回滚
- 百度地图api初次申请及简单应用
- 浙大吴飞“舌战”阿里贾扬清:AI内卷与年薪百万,哪个才是真实?
- 游戏模拟器成了外挂帮凶,灰产对抗再升级
- 国内外AI绘画『文生图』大模型效果对比
- 实现一个文字识别(图片转文字)工具
- SQL模糊查询时LIKE怎样跟变量
- SOAP协议规范介绍
- 日程安排小程序实战教程(上篇)
- 成功拿下猿辅导+斗鱼+滴滴+字节+腾讯offer,实战解析