Android獲取傳感器列表

jopen 9年前發布 | 107K 次閱讀 Android Android開發 移動開發

本文介紹如何獲取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;
    }

}

以三星Note3為例,其支持的傳感器如下:



1.   Sensor Type - 1
    Sensor Name - MPU6500 Acceleration Sensor
    Sensor Version - 1
    Sensor Vendor - Invensense
    Maximum Range - 19.6133
    Minimum Delay - 5000
    Power - 0.25
    Resolution - 5.985504E-4

2.  Sensor Type - 2
    Sensor Name - YAS532 Magnetic Sensor
    Sensor Version - 1
    Sensor Vendor - Yamaha Corporation
    Maximum Range - 1200.0
    Minimum Delay - 10000
    Power - 6.0
    Resolution - 0.06

3.  Sensor Type - 14
    Sensor Name - YAS532 Uncalibrated Magnetic Sensor
    Sensor Version - 1
    Sensor Vendor - Yamaha Corporation
    Maximum Range - 1200.0
    Minimum Delay - 10000
    Power - 6.0
    Resolution - 0.06

4.  Sensor Type - 4
    Sensor Name - MPU6500 Gyroscope Sensor
    Sensor Version - 1
    Sensor Vendor - Invensense
    Maximum Range - 8.726646
    Minimum Delay - 5000
    Power - 6.1
    Resolution - 2.663161E-4

5.  Sensor Type - 6
    Sensor Name - Barometer Sensor
    Sensor Version - 1
    Sensor Vendor - BOSCH
    Maximum Range - 1013.25
    Minimum Delay - 66700
    Power - 1.0
    Resolution - 1.0

6.  Sensor Type - 8
    Sensor Name - MAX88921 Proximity Sensor
    Sensor Version - 1
    Sensor Vendor - MAXIM, Inc.
    Maximum Range - 8.0
    Minimum Delay - 0
    Power - 0.75
    Resolution - 8.0

7.  Sensor Type - 5
    Sensor Name - MAX88921 RGB Sensor
    Sensor Version - 1
    Sensor Vendor - MAXIM, Inc.
    Maximum Range - 60000.0
    Minimum Delay - 200000
    Power - 0.75
    Resolution - 1.0

8.  Sensor Type - 12
    Sensor Name - SHTC1 relative humidity sensor
    Sensor Version - 1
    Sensor Vendor - Sensirion
    Maximum Range - 100.0
    Minimum Delay - 1000000
    Power - 0.3
    Resolution - 0.04

9.  Sensor Type - 13
    Sensor Name - SHTC1 ambient temperature sensor
    Sensor Version - 1
    Sensor Vendor - Sensirion
    Maximum Range - 165.0
    Minimum Delay - 1000000
    Power - 0.3
    Resolution - 0.01

10. Sensor Type - 15
    Sensor Name - MPL Game Rotation Vector
    Sensor Version - 1
    Sensor Vendor - Invensense
    Maximum Range - 1200.0
    Minimum Delay - 10000
    Power - 6.0
    Resolution - 0.06

11. Sensor Type - 18
    Sensor Name - SAMSUNG Step Detector Sensor
    Sensor Version - 1
    Sensor Vendor - Samsung Inc.
    Maximum Range - 1.0
    Minimum Delay - 0
    Power - 0.3
    Resolution - 1.0

12. Sensor Type - 19
    Sensor Name - SAMSUNG Step Counter Sensor
    Sensor Version - 1
    Sensor Vendor - Samsung Inc.
    Maximum Range - 100000.0
    Minimum Delay - 0
    Power - 0.3
    Resolution - 1.0

13. Sensor Type - 17
    Sensor Name - SAMSUNG Significant Motion Sensor
    Sensor Version - 1
    Sensor Vendor - Samsung Inc.
    Maximum Range - 1.0
    Minimum Delay - 10000
    Power - 0.3
    Resolution - 1.0

14. Sensor Type - 16
    Sensor Name - MPU6500 Uncalibrated Gyroscope Sensor
    Sensor Version - 1
    Sensor Vendor - Invensense
    Maximum Range - 8.726646
    Minimum Delay - 5000
    Power - 6.1
    Resolution - 2.663161E-4

15. Sensor Type - 65558
    Sensor Name - Auto Rotation Sensor
    Sensor Version - 1
    Sensor Vendor - Samsung Electronics
    Maximum Range - 255.0
    Minimum Delay - 0
    Power - 0.0
    Resolution - 0.0

16. Sensor Type - 11
    Sensor Name - Rotation Vector Sensor
    Sensor Version - 3
    Sensor Vendor - AOSP
    Maximum Range - 1.0
    Minimum Delay - 5000
    Power - 12.35
    Resolution - 5.9604645E-8

17. Sensor Type - 9
    Sensor Name - Gravity Sensor
    Sensor Version - 3
    Sensor Vendor - AOSP
    Maximum Range - 19.6133
    Minimum Delay - 5000
    Power - 12.35
    Resolution - 5.985504E-4

18. Sensor Type - 10
    Sensor Name - Linear Acceleration Sensor
    Sensor Version - 3
    Sensor Vendor - AOSP
    Maximum Range - 19.6133
    Minimum Delay - 5000
    Power - 12.35
    Resolution - 5.985504E-4

19. Sensor Type - 3
    Sensor Name - Orientation Sensor
    Sensor Version - 1
    Sensor Vendor - AOSP
    Maximum Range - 360.0
    Minimum Delay - 5000
    Power - 12.35
    Resolution - 0.00390625


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!