public final class Sensor
extends Object
java.lang.Object | |
↳ | android.hardware.Sensor |
表示传感器的类。 使用getSensorList(int)
获取可用传感器的列表。
Public methods |
|
---|---|
int |
getFifoMaxEventCount() |
int |
getFifoReservedEventCount() |
int |
getId() |
int |
getMaxDelay() 该值仅适用于连续和变化的传感器。 |
float |
getMaximumRange() |
int |
getMinDelay() |
String |
getName() |
float |
getPower() |
int |
getReportingMode() 每个传感器都有一个与其关联的报告模式。 |
float |
getResolution() |
String |
getStringType() |
int |
getType() |
String |
getVendor() |
int |
getVersion() |
boolean |
isAdditionalInfoSupported() 如果传感器支持传感器附加信息API,则返回true |
boolean |
isDynamicSensor() 如果传感器是动态传感器,则返回true。 |
boolean |
isWakeUpSensor() 如果传感器是唤醒传感器,则返回true。 |
String |
toString() 返回对象的字符串表示形式。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int REPORTING_MODE_CONTINUOUS
事件以速率参数registerListener(SensorEventListener, Sensor, int)
设置的恒定速率报告。 注意:如果其他应用程序请求更高的速率,传感器数据可能以比请求更快的速率传送。
常量值:0(0x00000000)
int REPORTING_MODE_ONE_SHOT
事件以一次性模式报告。 检测到事件后,传感器将自行关闭,然后发送一个事件。 此报告模式的传感器必须注册为使用requestTriggerSensor(TriggerEventListener, Sensor)
。
常量值:2(0x00000002)
int REPORTING_MODE_ON_CHANGE
只有当值发生变化时才会报告事件。 通过为速率参数registerListener(SensorEventListener, Sensor, int)
设置适当的值可以限制事件传送速率。注意:如果其他应用程序请求更高的速率,传感器数据可能以比请求更快的速率传送。
常数值:1(0x00000001)
int REPORTING_MODE_SPECIAL_TRIGGER
事件按照传感器描述中的描述进行报告。 传递给registerListener的速率可能不会影响事件传递的速率。 有关报告事件发生的频率和频率的更多信息,请参阅传感器定义。 例如,步检测器在检测到步时报告事件。
常量值:3(0x00000003)
String STRING_TYPE_ACCELEROMETER
描述加速度传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.accelerometer”
String STRING_TYPE_AMBIENT_TEMPERATURE
描述环境温度传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.ambient_temperature”
String STRING_TYPE_GAME_ROTATION_VECTOR
描述未校准的旋转矢量传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.game_rotation_vector”
String STRING_TYPE_GEOMAGNETIC_ROTATION_VECTOR
描述地磁旋转向量的常量字符串。
常量值:“android.sensor.geomagnetic_rotation_vector”
String STRING_TYPE_GRAVITY
描述重力传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.gravity”
String STRING_TYPE_GYROSCOPE
描述陀螺仪传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.gyroscope”
String STRING_TYPE_GYROSCOPE_UNCALIBRATED
描述未校准陀螺仪传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.gyroscope_uncalibrated”
String STRING_TYPE_HEART_BEAT
描述心跳传感器的常量字符串。
也可以看看:
常量值:“android.sensor.heart_beat”
String STRING_TYPE_HEART_RATE
描述心率监视器的常量字符串。
也可以看看:
常量值:“android.sensor.heart_rate”
String STRING_TYPE_LIGHT
描述光传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.light”
String STRING_TYPE_LINEAR_ACCELERATION
描述线性加速度传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.linear_acceleration”
String STRING_TYPE_MAGNETIC_FIELD
描述磁场传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.magnetic_field”
String STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED
描述未校准的磁场传感器类型的常量字符串。
常量值:“android.sensor.magnetic_field_uncalibrated”
String STRING_TYPE_MOTION_DETECT
描述运动检测传感器的常量字符串。
也可以看看:
常量值:“android.sensor.motion_detect”
String STRING_TYPE_ORIENTATION
此常数在API级别20中已弃用。
改为使用SensorManager.getOrientation()
。
描述方向传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.orientation”
String STRING_TYPE_POSE_6DOF
描述具有6个自由度的姿态传感器的常量字符串。
也可以看看:
常量值:“android.sensor.pose_6dof”
String STRING_TYPE_PRESSURE
描述压力传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.pressure”
String STRING_TYPE_PROXIMITY
描述接近传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.proximity”
String STRING_TYPE_RELATIVE_HUMIDITY
描述相对湿度传感器类型的常量字符串
也可以看看:
常量值:“android.sensor.relative_humidity”
String STRING_TYPE_ROTATION_VECTOR
描述旋转矢量传感器类型的常量字符串。
也可以看看:
常量值:“android.sensor.rotation_vector”
String STRING_TYPE_SIGNIFICANT_MOTION
描述显着运动触发传感器的常量字符串。
也可以看看:
常量值:“android.sensor.significant_motion”
String STRING_TYPE_STATIONARY_DETECT
描述静止检测传感器的常量字符串。
也可以看看:
常量值:“android.sensor.stationary_detect”
String STRING_TYPE_STEP_COUNTER
描述步计数器传感器的常量字符串。
也可以看看:
常量值:“android.sensor.step_counter”
String STRING_TYPE_STEP_DETECTOR
描述步进检测器传感器的常量字符串。
也可以看看:
常量值:“android.sensor.step_detector”
String STRING_TYPE_TEMPERATURE
此常数在API级别20中已弃用。
改为使用Sensor.STRING_TYPE_AMBIENT_TEMPERATURE
。
描述温度传感器类型的常量字符串
也可以看看:
常量值:“android.sensor.temperature”
int TYPE_ACCELEROMETER
描述加速度传感器类型的常量。
有关更多详细信息,请参阅 SensorEvent.values
。
常数值:1(0x00000001)
int TYPE_AMBIENT_TEMPERATURE
描述环境温度传感器类型的常量。
详情请参阅 SensorEvent.values
。
常量值:13(0x0000000d)
int TYPE_DEVICE_PRIVATE_BASE
传感器类型最低的传感器可以使用。 所有供应商传感器类型都大于或等于此常数。
常量值:65536(0x00010000)
int TYPE_GAME_ROTATION_VECTOR
描述未校准的旋转矢量传感器类型的常量。
与TYPE_ROTATION_VECTOR
相同,只是它不使用地磁场。 因此,Y轴不指向北,而是指向其他参考,该参考允许以与绕Z轴的陀螺仪漂移相同的数量级漂移。
在理想情况下,旋转并回到相同真实世界方向的电话应报告相同的游戏旋转矢量(不使用地球的地磁场)。 然而,随着时间的推移,方向可能会有所变化
有关更多详细信息,请参阅 SensorEvent.values
。
常量值:15(0x0000000f)
int TYPE_GEOMAGNETIC_ROTATION_VECTOR
描述地磁旋转向量的常量。
类似于TYPE_ROTATION_VECTOR
,但是使用磁力计而不是使用陀螺仪。 该传感器使用比其他旋转矢量更低的功率,因为它不使用陀螺仪。 但是,它更加嘈杂,并且最适合户外活动。
有关更多详细信息,请参阅 SensorEvent.values
。
常量值:20(0x00000014)
int TYPE_GRAVITY
描述重力传感器类型的常量。
有关更多详细信息,请参阅 SensorEvent.values
。
常量值:9(0x00000009)
int TYPE_GYROSCOPE
描述陀螺仪传感器类型的常量。
有关更多详细信息,请参阅 SensorEvent.values
。
常量值:4(0x00000004)
int TYPE_GYROSCOPE_UNCALIBRATED
描述未校准的陀螺仪传感器类型的常数。
与TYPE_GYROSCOPE
类似, TYPE_GYROSCOPE
执行陀螺漂移补偿来调整给定的传感器值。 但是,这样的陀螺漂移偏差值在结果values
单独返回给您,因此您可以将它们用于自定义校准。
工厂校准和温度补偿仍然适用于旋转速度(角速度)。
有关更多详细信息,请参阅 SensorEvent.values
。
常量值:16(0x00000010)
int TYPE_HEART_BEAT
描述运动检测传感器的常量。 有关更多详细信息,请参阅SensorEvent.values
。
常量值:31(0x0000001f)
int TYPE_HEART_RATE
一个描述心率监视器的常量。
报告的值是每分钟心跳次数。
报告的准确度代表了阅读过程中显示器的状态。 见SENSOR_STATUS_*
常量SensorManager
的准确性/状态值的更多细节。 特别是,当准确度为SENSOR_STATUS_UNRELIABLE
或SENSOR_STATUS_NO_CONTACT
,应该丢弃心率值。
该传感器需要权限android.permission.BODY_SENSORS
。 如果应用程序没有此权限,则不会由SensorManager.getSensorsList
或SensorManager.getDefaultSensor
返回。
常量值:21(0x00000015)
int TYPE_LIGHT
描述光线传感器类型的常量。
详情请参阅 SensorEvent.values
。
常量值:5(0x00000005)
int TYPE_LINEAR_ACCELERATION
描述线性加速度传感器类型的常量。
详情请参阅 SensorEvent.values
。
常量值:10(0x0000000a)
int TYPE_MAGNETIC_FIELD
描述磁场传感器类型的常量。
有关更多详细信息,请参阅 SensorEvent.values
。
常量值:2(0x00000002)
int TYPE_MAGNETIC_FIELD_UNCALIBRATED
描述未校准的磁场传感器类型的常数。
与TYPE_MAGNETIC_FIELD
类似,但在给定的传感器值中不考虑硬铁校准(由于设备上磁化的铁,钢或永磁体引起的失真而导致的设备校准)。 但是,这些硬铁偏差值将在结果values
单独返回给您,因此您可以将它们用于自定义校准。
此外,没有执行定期校准(即在使用该传感器时数据流中不存在不连续性),并且假定磁场是由于地极引起的,但是已经执行了工厂校准和温度补偿。
有关更多详细信息,请参阅 SensorEvent.values
。
常量值:14(0x0000000e)
int TYPE_MOTION_DETECT
描述运动检测传感器的常量。 详情请参阅SensorEvent.values
。
常量值:30(0x0000001e)
int TYPE_ORIENTATION
此常数在API级别8中已弃用。
改为使用SensorManager.getOrientation()
。
描述定向传感器类型的常量。
有关更多详细信息,请参阅 SensorEvent.values
。
常量值:3(0x00000003)
int TYPE_POSE_6DOF
描述具有6个自由度的姿态传感器的常量。 类似于TYPE_ROTATION_VECTOR
,从任意参考点进行额外的增量转换。 详情请参阅SensorEvent.values
。 可以使用摄像头,深度传感器等来计算输出值。 预计这是一个高功率传感器,预计只有在屏幕打开时才会使用。 预计比单独的旋转矢量更精确。
常量值:28(0x0000001c)
int TYPE_PRESSURE
描述压力传感器类型的常量。
有关更多详细信息,请参阅 SensorEvent.values
。
常数值:6(0x00000006)
int TYPE_PROXIMITY
描述接近传感器类型的常量。 这是一个唤醒传感器。
详情请参阅 SensorEvent.values
。
也可以看看:
常量值:8(0x00000008)
int TYPE_RELATIVE_HUMIDITY
描述相对湿度传感器类型的常量。
有关更多详细信息,请参阅 SensorEvent.values
。
常量值:12(0x0000000c)
int TYPE_ROTATION_VECTOR
描述旋转矢量传感器类型的常量。
详情请参阅 SensorEvent.values
。
常量值:11(0x0000000b)
int TYPE_SIGNIFICANT_MOTION
描述显着运动触发传感器的常量。
它在事件发生时触发,然后自动禁用。 传感器在设备处于睡眠状态时继续运行,并会在检测到明显的运动时自动唤醒设备。 应用程序不需要保存此传感器触发的任何唤醒锁。 这是一个唤醒传感器。
有关更多详细信息,请参阅 TriggerEvent
。
也可以看看:
常量值:17(0x00000011)
int TYPE_STATIONARY_DETECT
一个描述静止检测传感器的常量。 有关更多详细信息,请参阅SensorEvent.values
。
常量值:29(0x0000001d)
int TYPE_STEP_COUNTER
描述步进计数器传感器的常量。
这种类型的传感器返回自上次重新启动后用户采取的步骤数。 该值以浮点形式返回(小数部分设置为零),并且仅在重新引导系统时重置为零。 事件的时间戳被设置为该事件的最后一步被采用的时间。 该传感器采用硬件实现,预计功耗较低。 如果要长时间连续跟踪步数,请勿取消注册此传感器,以便即使在AP处于挂起模式时,也能在后台保持计数步骤,并在AP处于挂起状态时报告聚合计数苏醒。 应用程序需要为该传感器保持注册状态,因为如果步骤计数器没有被激活,它不会计算步数。 这款传感器非常适合健身追踪应用。 它被定义为一个REPORTING_MODE_ON_CHANGE
传感器。
详情请参阅 SensorEvent.values
。
常量值:19(0x00000013)
int TYPE_STEP_DETECTOR
描述步进检测器传感器的常数。
每次用户采取措施时,此类传感器都会触发事件。 唯一允许返回的值是1.0,并为每个步骤生成一个事件。 与任何其他事件一样,时间戳指示事件(此处为步骤)何时发生,这与脚踩到地面时相对应,从而产生较大的加速度变化。 该传感器仅用于检测每个单独的步骤,例如执行航位推算。 如果您只需要在一段时间内采取总步骤数,则请注册TYPE_STEP_COUNTER
。 它被定义为一个REPORTING_MODE_SPECIAL_TRIGGER
传感器。
详情请参阅 SensorEvent.values
。
常量值:18(0x00000012)
int TYPE_TEMPERATURE
此常数在API级别14中已弃用。
改为使用Sensor.TYPE_AMBIENT_TEMPERATURE
。
描述温度传感器类型的常量
常量值:7(0x00000007)
int getFifoMaxEventCount ()
Returns | |
---|---|
int |
Maximum number of events of this sensor that could be batched. If this value is zero it indicates that batch mode is not supported for this sensor. If other applications registered to batched sensors, the actual number of events that can be batched might be smaller because the hardware FiFo will be partially used to batch the other sensors. |
int getFifoReservedEventCount ()
Returns | |
---|---|
int |
Number of events reserved for this sensor in the batch mode FIFO. This gives a guarantee on the minimum number of events that can be batched. |
int getId ()
Returns | |
---|---|
int |
The sensor id that will be unique for the same app unless the device is factory reset. Return value of 0 means this sensor does not support this function; return value of -1 means this sensor can be uniquely identified in system by combination of its type and name. |
int getMaxDelay ()
该值仅适用于连续和变化的传感器。 这是两个传感器事件之间的延迟,对应于此传感器支持的最低频率。 当通过registerListener()请求较低频率时,事件将以此频率生成。 它可以用来估计批量FIFO何时可能已满。 旧设备可能会将此值设置为零。 如果它为负值或零,请忽略此值。
Returns | |
---|---|
int |
The max delay for this sensor in microseconds. |
float getMaximumRange ()
Returns | |
---|---|
float |
maximum range of the sensor in the sensor's unit. |
int getMinDelay ()
Returns | |
---|---|
int |
the minimum delay allowed between two events in microsecond or zero if this sensor only returns a value when the data it's measuring changes. |
float getPower ()
Returns | |
---|---|
float |
the power in mA used by this sensor while in use |
int getReportingMode ()
每个传感器都有一个与其关联的报告模式。 此方法返回此传感器类型的报告模式常量。
Returns | |
---|---|
int |
Reporting mode for the input sensor, one of REPORTING_MODE_* constants. |
float getResolution ()
Returns | |
---|---|
float |
resolution of the sensor in the sensor's unit. |
String getStringType ()
Returns | |
---|---|
String |
The type of this sensor as a string. |
boolean isAdditionalInfoSupported ()
如果传感器支持传感器附加信息API,则返回true
Returns | |
---|---|
boolean |
true if the sensor supports sensor additional information API |
也可以看看:
boolean isDynamicSensor ()
如果传感器是动态传感器,则返回true。
Returns | |
---|---|
boolean |
true if the sensor is a dynamic sensor (sensor added at runtime). |
boolean isWakeUpSensor ()
如果传感器是唤醒传感器,则返回true。
应用处理器电源模式
应用程序处理器(AP)是应用程序在其上运行的处理器。 当没有唤醒锁定并且用户没有与设备交互时,该处理器可以进入“挂起”模式,将功耗降低10倍或更多。
非唤醒传感器
非唤醒传感器是不会唤醒AP从暂停状态报告数据的传感器。 当AP处于挂起模式时,传感器继续运行并生成事件,并将其放入硬件FIFO中。 当AP唤醒时,FIFO中的事件被传送到应用程序。 如果FIFO太小而无法存储AP处于挂起模式时生成的所有事件,则较旧的事件将丢失:最旧的数据将被丢弃以容纳较新的数据。 在FIFO不存在maxFifoEventCount() == 0
的极端情况下,AP处于挂起模式时生成的所有事件都将丢失。 使用非唤醒传感器的应用通常应该:
onPause
method. This is the most common case. 唤醒传感器
与非唤醒传感器相反,唤醒传感器确保数据的传输与AP的状态无关。 当AP唤醒时,唤醒传感器的行为与非唤醒传感器相同。 当AP睡着时,唤醒传感器唤醒AP发送事件。 也就是说,AP将唤醒,并且传感器将在最大报告延迟时间到达或硬件FIFO已满之前发送事件。 有关更多详细信息,请参阅registerListener(SensorEventListener, Sensor, int, int)
。
Returns | |
---|---|
boolean |
true if this is a wake-up sensor, false otherwise. |
String toString ()
返回对象的字符串表示形式。 通常, toString
方法将返回一个字符串,用于“文本地表示”此对象。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
类Object
的toString
方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”和对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |