Android 获取传感器列表的整理和简单的实例
Android 4.4 (API等级19)支持以下传感器:
TYPE_ACCELEROMETER
加速为加速度传感器m/s2.测量应用于设备X、Y、Z轴上的加速度
传感器类型值(Sensor Type):1 (0x00000001)
TYPE_AMBIENT_TEMPERATURE
单位是温度传感器℃
传感器类型值(Sensor Type): 13 (0x0000000d)
TYPE_GAME_ROTATION_VECTOR
游戏动作传感器不受电磁干扰的影响
传感器类型值(Sensor Type):15 (0x0000000f)
TYPE_GEOMAGNETIC_ROTATION_VECTOR
当手机处于休眠状态时,地磁旋转矢量传感器仍能记录设备的方向
传感器类型值(Sensor Type):20 (0x00000014)
TYPE_GRAVITY
单位是重力传感器m/s2,测量应用于设备X、Y、Z轴上的重力
传感器类型值(Sensor Type):9 (0x00000009)
TYPE_GYROSCOPE
陀螺仪传感器为单位rad/s,测量设备x、y、z三轴角加速度
传感器类型值(Sensor Type):4 (0x00000004)
TYPE_GYROSCOPE_UNCALIBRATED
未校准陀螺仪传感器提供未校准和补偿的原始陀螺仪数据,用于后期处理和集成定位数据
传感器类型值(Sensor Type):16 (0x00000010)
TYPE_LIGHT
单位光传感器lx,检测周围的光强
传感器类型值(Sensor Type):5 (0x00000005)
TYPE_LINEAR_ACCELERATION
线性加速度传感器传感器m/s2.该传感器是获取加速传感器去除重力的数据
传感器类型值(Sensor Type):10 (0x0000000a)
TYPE_MAGNETIC_FIELD
磁传感器,单位是uT(微特斯拉)测量设备周围的三个物理轴(x,y,z)的磁场
传感器类型值(Sensor Type):2 (0x00000002)
TYPE_MAGNETIC_FIELD_UNCALIBRATED
未校准磁传感器提供原始和未校准的磁场数据
传感器类型值(Sensor Type):14 (0x0000000e)
TYPE_ORIENTATION
测量设备围绕三个物理轴(x,y,z)的旋转角度
传感器类型值(Sensor Type):3 (0x00000003)
TYPE_PRESSURE
单位是压力传感器hPa(百帕斯卡)返回当前环境下的压力
传感器类型值(Sensor Type):6 (0x00000006)
TYPE_PROXIMITY
单位为距离传感器cm,用于测量从对象到屏幕的距离
传感器类型值(Sensor Type):8 (0x00000008)
TYPE_RELATIVE_HUMIDITY
单位为%的湿度传感器测量周围环境的相对湿度
传感器类型值(Sensor Type):12 (0x0000000c)
TYPE_ROTATION_VECTOR
旋转矢量传感器,旋转矢量代表设备的方向
传感器类型值(Sensor Type):11 (0x0000000b)
TYPE_SIGNIFICANT_MOTION
触发传感器的特殊动作
传感器类型值(Sensor Type):17 (0x00000011)
TYPE_STEP_COUNTER
计步传感器
传感器类型值(Sensor Type):19 (0x00000013)
TYPE_STEP_DETECTOR
步行检测传感器,用户每走一步就触发事件
传感器类型值(Sensor Type):18 (0x00000012)
TYPE_TEMPERATURE
目前,温度传感器已被温度传感器使用TYPE_AMBIENT_TEMPERATURE替代
传感器类型值(Sensor Type):7 (0x00000007)
代码如下:
package com.example.androidtest;
import java.util.List;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSensorList();
}
@SuppressLint("NewApi")
private void getSensorList() {
// 获取传感器管理器
SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
// 获取所有传感器列表
List sensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
// 打印每个传感器信息
StringBuilder strLog = new StringBuilder();
int iIndex = 1;
for (Sensor item : sensors) {
strLog.append(iIndex ".");
strLog.append(" Sensor Type - " item.getType() "\r\n");
strLog.append(" Sensor Name - " item.getName() "\r\n");
strLog.append(" Sensor Version - " item.getVersion() "\r\n");
strLog.append(" Sensor Vendor - " item.getVendor() "\r\n");
strLog.append(" Maximum Range - " item.getMaximumRange() "\r\n");
strLog.append(" Minimum Delay - " item.getMinDelay() "\r\n");
strLog.append(" Power - " item.getPower() "\r\n");
strLog.append(" Resolution - " item.getResolution() "\r\n");
strLog.append("\r\n");
iIndex ;
}
System.out.println(strLog.toString());
}
@Override
public 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;
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!