首页 > 系统 > Android > 正文

Android 获取传感器列表整理及简单实例

2019-12-12 02:33:55
字体:
来源:转载
供稿:网友

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<Sensor> 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;  }}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表