Android传感器编程入门(一)
16lz
2021-01-23
本讲内容:Android传感器编程入门,分别包括加速度传感器(accelerometer),陀螺仪(gyroscope),环境光照传感器(light),磁力传感器(magnetic field),方向传感器(orientation),压力传感器(pressure),距离传感器(proximity)和温度传感器(temperature)
本讲的学习方式还是在实战中学习,需要提醒的是模拟器中无法模拟传感器,因此你需要准备一款Android真机才能运行本讲的例子。
二、实例:手机传感器清单
我们还是先看程序后解释,
1、创建一个项目 Lesson37_HelloSensor , 主Activity名字叫 mainActivity.java
2、UI布局文件main.xml的内容如下:
- <?xmlversion="1.0"encoding="utf-8"?>
- <linearlayoutandroid:layout_height="fill_parent"android:layout_width="fill_parent"android:orientation="vertical"xmlns:android="http://schemas.android.com/apk/res/android">
- <textviewandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:text=""android:id="@+id/TextView01">
- </textview></linearlayout>
3、mainActivity.java的内容如下:
- packagebasic.android.lesson37;
- importjava.util.List;
- importandroid.app.Activity;
- importandroid.content.Context;
- importandroid.hardware.Sensor;
- importandroid.hardware.SensorManager;
- importandroid.os.Bundle;
- importandroid.widget.TextView;
- publicclassMainActivityextendsActivity{
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //准备显示信息的UI组建
- finalTextViewtx1=(TextView)findViewById(R.id.TextView01);
- //从系统服务中获得传感器管理器
- SensorManagersm=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
- //从传感器管理器中获得全部的传感器列表
- List<sensor>allSensors=sm.getSensorList(Sensor.TYPE_ALL);
- //显示有多少个传感器
- tx1.setText("经检测该手机有"+allSensors.size()+"个传感器,他们分别是:\n");
- //显示每个传感器的具体信息
- for(Sensors:allSensors){
- StringtempString="\n"+"设备名称:"+s.getName()+"\n"+"设备版本:"+s.getVersion()+"\n"+"供应商:"
- +s.getVendor()+"\n";
- switch(s.getType()){
- caseSensor.TYPE_ACCELEROMETER:
- tx1.setText(tx1.getText().toString()+s.getType()+"加速度传感器accelerometer"+tempString);
- break;
- caseSensor.TYPE_GYROSCOPE:
- tx1.setText(tx1.getText().toString()+s.getType()+"陀螺仪传感器gyroscope"+tempString);
- break;
- caseSensor.TYPE_LIGHT:
- tx1.setText(tx1.getText().toString()+s.getType()+"环境光线传感器light"+tempString);
- break;
- caseSensor.TYPE_MAGNETIC_FIELD:
- tx1.setText(tx1.getText().toString()+s.getType()+"电磁场传感器magneticfield"+tempString);
- break;
- caseSensor.TYPE_ORIENTATION:
- tx1.setText(tx1.getText().toString()+s.getType()+"方向传感器orientation"+tempString);
- break;
- caseSensor.TYPE_PRESSURE:
- tx1.setText(tx1.getText().toString()+s.getType()+"压力传感器pressure"+tempString);
- break;
- caseSensor.TYPE_PROXIMITY:
- tx1.setText(tx1.getText().toString()+s.getType()+"距离传感器proximity"+tempString);
- break;
- caseSensor.TYPE_TEMPERATURE:
- tx1.setText(tx1.getText().toString()+s.getType()+"温度传感器temperature"+tempString);
- break;
- default:
- tx1.setText(tx1.getText().toString()+s.getType()+"未知传感器"+tempString);
- break;
- }
- }
- }
- }
更多相关文章
- Android Things:用户驱动-传感器
- 弄点好玩的之android传感器
- Android传感器编程实例开发——三轴数据采集
- Android利用传感器实现微信摇一摇功能
- android实现手机传感器调用
- 获取Android设备的方向 ,使用加速度重力传感器
- Android 深入解析光传感器