首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用Android上的虚拟数据绕过SensorManager数据

如何利用Android上的虚拟数据绕过SensorManager数据
EN

Stack Overflow用户
提问于 2014-08-26 16:33:13
回答 1查看 1.8K关注 0票数 0

我必须想办法绕过Android上的传感器管理器数据(特别是加速度计数据)。我不知道如何继续,因为我是相对较新的Android。我必须输入虚拟传感器数据(最好是从SD卡上的文本文件)来替换实际的传感器管理器数据。

我的最终目标是用它来测试一个应用程序,它使用加速度计数据来做决定。

我应该能够将虚拟数据提供给所有请求传感器数据的应用程序。如有任何帮助或指导,将不胜感激。

PS:我想在Nexus-5 Android手机上获得这个。

EN

回答 1

Stack Overflow用户

发布于 2014-08-26 16:45:29

SensorManager通过SensorEventListener提供来自传感器的数据。传感器记录除其他外还包含一个浮动数组。在Accelerometer情况下,有3个浮点数表示向X、Y和Z轴方向的加速度值。因此,在SensorEventListener的实现中,您可以用测试所需的虚拟值覆盖这些值。

代码语言:javascript
复制
@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的方法上指明它:

代码语言:javascript
复制
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__常量之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25510824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档