似乎缺少某些传感器的枚举值<android/sensor.h>
.
该文件定义了以下枚举:
/*
* Sensor types
* (keep in sync with hardware/sensor.h)
*/
enum {
ASENSOR_TYPE_ACCELEROMETER = 1,
ASENSOR_TYPE_MAGNETIC_FIELD = 2,
ASENSOR_TYPE_GYROSCOPE = 4,
ASENSOR_TYPE_LIGHT = 5,
ASENSOR_TYPE_PROXIMITY = 8
};
评论说这个枚举已与<hardware/sensor.h>
(没有公开,它是android源代码的一部分)。
但在<hardware/sensor.h>
我发现了values http://source.android.com/devices/halref/sensors_8h.html对于许多更有用的传感器,如压力、温度和湿度传感器:
#define SENSOR_TYPE_ACCELEROMETER (1)
#define SENSOR_TYPE_GEOMAGNETIC_FIELD (2)
#define SENSOR_TYPE_ORIENTATION (3)
#define SENSOR_TYPE_GYROSCOPE (4)
#define SENSOR_TYPE_LIGHT (5)
#define SENSOR_TYPE_PRESSURE (6)
#define SENSOR_TYPE_TEMPERATURE (7)
#define SENSOR_TYPE_PROXIMITY (8)
#define SENSOR_TYPE_GRAVITY (9)
#define SENSOR_TYPE_LINEAR_ACCELERATION (10)
#define SENSOR_TYPE_ROTATION_VECTOR (11)
#define SENSOR_TYPE_RELATIVE_HUMIDITY (12)
// ...
#define SENSOR_TYPE_HEART_BEAT (31)
为什么有些传感器未在列表中列出<android/sensor.h>
?使用它们安全且便携吗?
目前使用常量是绝对安全的<hardware/sensor.h>
since SensorManager https://android.googlesource.com/platform/frameworks/base/+/1bf797857e025e8a71db86fb9e79765a767ec1eb/libs/gui/SensorManager.cpp#40使用系统范围内的数据填充其内部传感器列表ISensorServer
无需重新映射类型值。和ISensorServer
uses <hardware/sensor.h>
常数。
我猜想 NDK API 公开约束类型集只是因为它有一段时间没有更新了。
附:当然,如果将来出现某种映射,事情就会被破坏,但 IMO AOSP 将保持不变。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)