我必须想办法绕过Android上的传感器管理器数据(特别是加速度计数据)。我不知道如何继续,因为我是相对较新的Android。我必须输入虚拟传感器数据(最好是从SD卡上的文本文件)来替换实际的传感器管理器数据。
我的最终目标是用它来测试一个应用程序,它使用加速度计数据来做决定。
我应该能够将虚拟数据提供给所有请求传感器数据的应用程序。如有任何帮助或指导,将不胜感激。
PS:我想在Nexus-5 Android手机上获得这个。
发布于 2014-08-26 16:45:29
SensorManager通过SensorEventListener提供来自传感器的数据。传感器记录除其他外还包含一个浮动数组。在Accelerometer情况下,有3个浮点数表示向X、Y和Z轴方向的加速度值。因此,在SensorEventListener的实现中,您可以用测试所需的虚拟值覆盖这些值。
@Override
public void onSensorChanged(SensorEvent event) {
int type = event.sensor.getType();
if(type == Sensor.TYPE_ACCELEROMETER){
float result[] = event.values;
// modify the values here
}
}编辑:为了提供记录生成率,您可以在SensorManager的方法上指明它:
registerListener(this, sensor, rate_in_microseconds);但是,正如文档所指出的,这里提供的速率只是一个提示,并不能保证事件率。
发送_The速率传感器事件。这只是对系统的一个提示。事件可能比指定的速率更快或更慢。通常情况下,事件的接收速度更快。该值必须是SENSOR_DELAY_NORMAL、SENSOR_DELAY_UI、SENSOR_DELAY_GAME或SENSOR_DELAY_FASTEST之一,或以微秒为单位的事件之间所需的延迟。从Android2.3 (API级别9)开始,指定的延迟仅适用于微秒。对于早期版本,必须使用SENSOR_DELAY__常量之一。
https://stackoverflow.com/questions/25510824
复制相似问题