logo资料库

SensorSimulator使用说明.doc

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
SensorSimulator(传感器模拟器) 传感器模拟器实时模拟传感器数据。 SensorSimulator 传感器模拟器 SensorSimulator 实时驱动你的 Android 应用程序。 下载地址:http://code.google.com/p/openintents/downloads/list?q=sensorsimulator 关于 SensorSimulator OpenIntends 的 SensorSimulator 使你能够利用鼠标实时模拟传感器数据。而且,利用一个远 程登录连接,你也可以模拟你的电池电压和你的 GPS 位置。 新!现在你可以记录一系列来自真实设备的状态。你也可以用特性如编辑、保存、加载、运 行方案。目前支持加速度计、指南针、方位、温度、光照、距离、压力、重力、线加速度、 旋转矢量、陀螺仪等传感器,它们的行为可以通过各种设置来自定义。新特性的描述见网址: http://openintents.org/en/node/885
SensorSimulator 与 Android 模拟器的连接  从下载列表中下载最新的 sensorsimulator-x.x.x.zip 并解压(如果你还没有)。  开始 bin/sensorsimulator-x.x.x.jar(java 单独的应用程序)。  在你的 Android 模拟器上安装 bin/SensorSimulatorSettings-x.x.x.apk。  在模拟器上启动 SensorSimulator。  在 SensorSimulator 显示的界面中输入 IP 地址和端口号(如下图)。
 转到 java 模拟器的 Sensors 选项卡,选择你需要的传感器。  点击模拟器上的 Connect(设置活动中的第二个选项卡)。  现在你应该看见传感器数据(如下所示)。在一小段延时后,你就与 SensorSimulator 数 字同步了。  试着在 SensorSimulator 电话周围移动鼠标:SensorSimulator 和 Android 电话上的数字将 会改变。 注意 1:在 SensorSimulator 和 Android 电话间值传递了这些数字。这些数字和你从你应用程 序中读取出的一致。 注意 2:改变使能的传感器,你必须从 setting activit 中断开连接并重新连接
SensorSimulator 中记录真实 Android 设备  从下载列表中下载最新的 sensorsimulator-x.x.x.zip 并解压(如果你还没有)  转到 java 模拟器的 Scenario Simulator 选项卡  安照步骤,在你的设备上安装并启动 SensorRecordFromDevice.apk  你可以看见一个新设备的状态如何添加到 java 独立应用程序的方案中 注意:确保 Android 设备和 java 应用程序在同一个网络中(一个无线局部网将生效)。你也 可以在 Android Activity 文本框中为 java 应用程序填入一个正确的 IP
快速设置选项卡 在这里可以快速设置 sensor 允许的配置 传感器参数选项卡 在这里你可以找到关于传感器的高级细节/设置。通过点击问号,你可以看见感兴趣的传感 器信息。
远程登录传感器 远程登录传感器允许你控制模拟 GPS 的位置和电池的电压。  点击从菜单中选择 telnet 按钮  在文本框中写入模拟器启动的端口(你可以在模拟器窗口的标题栏中找到)  点击 Connect 附加设置 1.“Update sensors”设置内部更新间的持续时间 2.“Refresh after”确定模拟器出现多少个查询后,下方显示的更新率被计算和平均 3.“Save”设置两个主状态间的时间间隔(来自方案) 4.“Play”设置中间状态间的时间间隔(运行时生成)  从菜单中点击 settings 按钮  如 果 你 想 要 改 变 一 些 设 置 , 放 心 去 做
如何在你的应用程序中使用传感器模拟器  将 external JAR lib/sensorsimulator-lib-x.x.x.jar 添加到你的工程中  导入 sensorsimulator 类 import org.openintents.sensorsimulator.hardware.Sensor; import org.openintents.sensorsimulator.hardware.SensorEvent; import org.openintents.sensorsimulator.hardware.SensorEventListener; import org.openintents.sensorsimulator.hardware.SensorManagerSimulator;  替换 onCreate()中的代码: mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);  用如下代码 mSensorManager = SensorManagerSimulator.getSystemService(this, SENSOR_SERVICE);  用 SensorSimulatorSettings 中预设的配置连接传感器模拟器 mSensorManager.connectSimulator();  其他代码不受影响,你可以在 APIdemos/OS/Sensors.java 中找到传感器如果实现的参考 代码  通常需要用 onResume()注册一个传感器,用 onStop()注销一个传感 @Override protected void onResume() { super.onResume(); mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_FASTEST); mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_FASTEST); mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_FASTEST);
mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE), SensorManager.SENSOR_DELAY_FASTEST); } @Override protected void onStop() { mSensorManager.unregisterListener(this); super.onStop(); }  最后实现 SensorEventListener class MySensorActivity extends Activity implements SensorEventListener{ public void onAccuracyChanged(Sensor sensor, int accuracy) { } public void onSensorChanged(SensorEvent event) { int sensor = event.type; float[] values = event.values; // do something with the sensor data } } 注意 1:OpenIntents 类中的 SensorManagerSimulator 派生于 Android 类中的 SensorManager, 并 正 确 实 现 了 相 同 的 功 能 ( 见 Android SensorManager )。 为 了 回 调 , 实 现 了 新 的 SensorEventListener,它类似于标准 Android SensorEventListener。 注意 2:在任何不连接模拟器的情况下,你将会得到真实设备的传感器数据:在这种情况下, org.openintents.hardware.SensorManagerSimulator 类通过系统返回,透明调用 SensorManager。 注意 3:在你按照之前的描述修改你的源代码后,你可以用 sensors application from API Demos 测试模拟器 传感器数据定义 坐标系由 XYZ 标识,对它的定义的描述在 Android SensorEvent 的参考中 (http://developer.android.com/reference/android/hardware/SensorEvent.html) 加速计 accelerometer 加速计的值的定义在加速计参考中 http://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_ACCE LEROMETER “传感器的值是 X,Y,Z 轴上的加速度,X 轴正向指向设备右边,Y 轴正向指向设备顶端,Z 轴正向指向设备前端。重力的方向由 X,Y,Z 轴心标识。典型的例子是,在 Z 轴上设备相对于 地球表面平行的地方视为-STANDARD_GRAVITY,X 和 Z 的值接近 0。加速计的值以 SI 为 单位(m/s^2)” Magnetic field(compass)磁力计(指南针) 磁力计传感器的值定义在磁力计参考中 http://developer.android.com/reference/android/hardware/SensorManager.html#MAGNETIC_FIE
分享到:
收藏