欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2022-06-11 09:33:21
android 获取传感器列表整理及简单实例 android 4.4 (api等级19)支持以下传感器:    type_acceler...

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

}

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