为什么在Android中缺少传感器类型3?

w

我正在使用Android传感器。<sensor.h>已:

enum {
    ASENSOR_TYPE_ACCELEROMETER      = 1,
    ASENSOR_TYPE_MAGNETIC_FIELD     = 2,
    ASENSOR_TYPE_GYROSCOPE          = 4,
    ASENSOR_TYPE_LIGHT              = 5,
    ASENSOR_TYPE_PROXIMITY          = 8
};

当我ASensorManager_getSensorList在HTC Evo上转储传感器时,我得到:

SensorList: BMA150 3-axis Accelerometer (Bosh), 1
SensorList: AK8973 3-axis Magnetic field sensor (Asahi Kasei), 2
SensorList: AK8973 Orientation sensor (Asahi Kasei), 3
SensorList: CM3602 Proximity sensor (Capella Microsystems), 8
SensorList: CM3602 Light sensor (Capella Microsystems), 5

当我越过enums列表时,似乎传感器类型3是方向。

问题:方向传感器将始终为3型传感器吗?还是会根据制造商而改变?


编辑:这是华硕TF-101平板电脑的转储:

SensorList: MPL rotation vector (Invensense), 11
SensorList: MPL linear accel (Invensense), 10
SensorList: MPL gravity (Invensense), 9
SensorList: MPL Gyro (Invensense), 4
SensorList: MPL accel (Invensense), 1
SensorList: MPL magnetic field (Invensense), 2
SensorList: MPL Orientation (Invensense), 3
SensorList: Lite-On al3000a Ambient Light Sensor (Lite-On), 5

方向再次为3,但还有一些其他传感器。


编辑:这是Zeki TBQG 1084B平板电脑的转储:

SensorList: STK831x accelerometer (Sensortek) 1 10000 1.000000

没有方向性(只有1个传感器便宜,我猜它对于游戏来说是便宜的)。

马辛·奥洛夫斯基(Marcin Orlowski)

枚举用于设备可以具有的传感器类型,并且每种类型在整个平台上应始终具有相同的数值。因此,无论设备类型或供应商是什么,如果它ASENSOR_TYPE_GYROSCOPE装有陀螺仪,则应始终将其报告为最终等于4如果您看到陀螺仪在设备上报告的内容不同,则说明该错误,即该设备上的低级驱动程序中的错误,很可能会在下一次固件更新左右时得到修复。

这些值在每台设备上必须保持不变,否则您的应用将无法真正运行。如果类型无法统一,因为可执行二进制文件对数字值(而不是ENUM / defines)进行操作,那么开发传感器将是一个巨大的痛苦。拥有ENUM的主要目的是使用它们而不是最终值,以使您的代码更具可读性。更清楚的是,什么时候执行代码,即

if( sensor == ASENSOR_TYPE_GYROSCOPE )

if( sensor == 4 ) 

至于方向传感器及其缺少的ENUM条目-该传感器已在API8中弃用,现在建议您使用磁场传感器和加速度计来获得等效的功能(请参见示例实现),这很可能是它从ENUM中消失的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在Android中缺少传感器类型3?

来自分类Dev

为什么<android / sensor.h>中缺少某些传感器的枚举值?使用它们安全吗?

来自分类Dev

获取Android中的传感器列表

来自分类Dev

Android Studio 抱怨指纹传感器缺少权限检查

来自分类Dev

Android Wear:未描述传感器类型

来自分类Dev

TYPE_SIGNIFICANT_MOTION传感器在Android中的实现

来自分类Dev

Android传感器无法在服务中运行

来自分类Dev

如何在Android中检测双击接近传感器?

来自分类Dev

Android接近传感器问题仅在Samsung设备中

来自分类Dev

ListView名称传感器Android中的错误

来自分类Dev

Android传感器registerListener在单独的线程中

来自分类Dev

如何在Android中检测双击接近传感器?

来自分类Dev

为什么我的其中一张GPU卡没有显示在传感器中?

来自分类Dev

Android如何设置传感器延迟?

来自分类Dev

Android传感器和线程

来自分类Dev

Android传感器直立旋转

来自分类Dev

Android传感器和线程

来自分类Dev

Android传感器直立旋转

来自分类Dev

如何注销多个传感器的android

来自分类Dev

Android上的冗余运动传感器?

来自分类Dev

Moto 360中的传感器列表

来自分类Dev

Webots与Pycharm中的马达/传感器

来自分类Dev

消除传感器测量中的峰值

来自分类Dev

为什么nodeMCU / ESP8266板的PIR传感器保持高电平?

来自分类Dev

为什么我的指纹传感器不响应我的arduino代码?

来自分类Dev

为什么第二个被动红外传感器总是高?

来自分类Dev

psensor,传感器查看器等中列出的不同硬件温度分别是什么?

来自分类Dev

psensor,传感器查看器等中列出的不同硬件温度分别是什么?

来自分类Dev

当将Android磁场传感器值转换为地球坐标系时,为什么X坐标值如此接近零?

Related 相关文章

  1. 1

    为什么在Android中缺少传感器类型3?

  2. 2

    为什么<android / sensor.h>中缺少某些传感器的枚举值?使用它们安全吗?

  3. 3

    获取Android中的传感器列表

  4. 4

    Android Studio 抱怨指纹传感器缺少权限检查

  5. 5

    Android Wear:未描述传感器类型

  6. 6

    TYPE_SIGNIFICANT_MOTION传感器在Android中的实现

  7. 7

    Android传感器无法在服务中运行

  8. 8

    如何在Android中检测双击接近传感器?

  9. 9

    Android接近传感器问题仅在Samsung设备中

  10. 10

    ListView名称传感器Android中的错误

  11. 11

    Android传感器registerListener在单独的线程中

  12. 12

    如何在Android中检测双击接近传感器?

  13. 13

    为什么我的其中一张GPU卡没有显示在传感器中?

  14. 14

    Android如何设置传感器延迟?

  15. 15

    Android传感器和线程

  16. 16

    Android传感器直立旋转

  17. 17

    Android传感器和线程

  18. 18

    Android传感器直立旋转

  19. 19

    如何注销多个传感器的android

  20. 20

    Android上的冗余运动传感器?

  21. 21

    Moto 360中的传感器列表

  22. 22

    Webots与Pycharm中的马达/传感器

  23. 23

    消除传感器测量中的峰值

  24. 24

    为什么nodeMCU / ESP8266板的PIR传感器保持高电平?

  25. 25

    为什么我的指纹传感器不响应我的arduino代码?

  26. 26

    为什么第二个被动红外传感器总是高?

  27. 27

    psensor,传感器查看器等中列出的不同硬件温度分别是什么?

  28. 28

    psensor,传感器查看器等中列出的不同硬件温度分别是什么?

  29. 29

    当将Android磁场传感器值转换为地球坐标系时,为什么X坐标值如此接近零?

热门标签

归档