我现在没有安卓手机。但在我的应用程序中,我需要使用加速度计值。如何在模拟环境中做到这一点?
5 回答
Android 模拟器本身不支持它,但 OpenIntents 的SensorSimulator填补了这一空白。下载并解压 zip 文件,然后启动独立的 jar 文件:
$ java -jar bin/sensorsimulator.jar
接下来,使用 SDK 自带的 adb 工具在模拟器上安装 SensorSimulatorSettings:
$ adb -s <emulator device> install bin/SensorSimulatorSettings.apk
(运行adb devices以查找模拟器设备名称)。最后,在模拟器中运行已安装的 SensorSimulatorSettings 应用程序并输入 IP 地址10.0.2.2(尽管 SensorSimulator 应用程序可能会建议。这是开发主机环回设备的别名,因此应该始终有效。
最新版本的模拟器启用了加速度计和其他传感器模拟支持。一个可以telnet localhost 5554
:
尝试 127.0.0.1...
连接到本地主机。
转义字符是 '^]'。
Android 控制台:键入“帮助”以获取命令列表
OK传感器
允许您请求模拟器传感器可用的子命令:
status 列出所有传感器及其状态。
获取获取传感器值
设置设置传感器值KO:缺少子命令
传感器状态
加速:启用。
磁场:启用。
方向:启用。
温度:启用。
接近度:启用。
好的
我不知道如何准确地模拟震动。尝试一个接一个地快速发送这两个命令:
sensor set acceleration 0:0:0
sensor set acceleration 99:99:99
我也试图让 SensorSimulator 工作,我想我终于让它工作了。
上述步骤:“...java -jar bin/sensorsimulator.jar
接下来,使用 SDK 自带的 adb 工具在模拟器上安装 SensorSimulatorSettings: $ adb -s install bin/SensorSimulatorSettings.apk
...最后,在模拟器中运行安装好的 SensorSimulatorSettings 应用,输入 IP 地址 10.0.2.2...”
是一个好的开始,但我需要做更多。
您显然需要修改您的应用程序以使用 SensorSimulator。您可以访问http://code.google.com/p/openintents/wiki/SensorSimulator并向下滚动到“如何在应用程序中使用 SensorSimulator”部分。
即便如此,我在编译时也遇到了一些错误,因此您可能希望查看此页面:Vintage Thermometer component + SensorSimulator on the Android emulator - 我不得不删除对 android.hardware.Sensor、SensorEvent 和 SensorEventListener 的引用。
然后它在调用 connectSimulator 时失败了。显然,我需要在清单文件中授予我的应用程序使用 Internet 的权限。
毕竟,我可以使用 SensorSimulator 虚拟旋转我的手机,并在我的应用程序中获得相应的传感器读数。
我体验过目标 10 的模拟器不支持加速度计,但目标 15 支持。我不知道是否有针对目标 10 的方法。因此,为了测试您的应用程序,请为目标 15 创建项目和 AVD。
我建议你使用 Genymotion 应用程序,它集成了一个完整的加速度计测试工具并使用更快的模拟器:Genymotion