我刚刚弄坏了我的 s3。 3 年前,它还是最好的智能手机之一。
问题如何通过usb获取手机惯性传感器的值?
我想使用设备的加速度计、陀螺仪、磁力计、气压计和 gps 传感器。
假设我们想要得到:
- 沿三个轴的原始加速度数据。
我连接了 USB 电缆并运行了 adb root
和 adb shell
。好的。
root@android:/ # find / -type d -iname "sensors"
/sys/devices/virtual/sensors
/sys/class/sensors
“/sys/class/sensors”目录包含:
root@android:/ # ls sys/class/sensors
accelerometer_sensor
barometer_sensor
gyro_sensor
light_sensor
magnetic_sensor
proximity_sensor
问题
即使我倾斜手机,原始测量值也不会改变。传感器处于待机模式。它始终显示相同的值。
root@android:/sys/class/sensors/accelerometer_sensor # cat raw_data
-74,121,1016
我注意到控制传感器电源状态的文件夹 power/control。
root@android:/sys/class/sensors/accelerometer_sensor # cat power/control
auto
我尝试使用 echo on/yes/ok/yeah/wtf > power/control
但没有任何改变。
我记得当我的手机屏幕工作时,打开一个具有传感器权限的 Android 应用程序(例如具有指南针功能的 Google map )以启用传感器并以恒定速率刷新值就足够了. Java 应用程序可能会在文件中写入一些内容来激活传感器并读取原始值。
如何从 shell 激活传感器?
最佳答案
使用
root@:/ # getevent -S
您可以获得所有传感器的列表。查找一个名为“proximity_sensor”的传感器并检索设备名称。 例如。
root@:/ # getevent -S
add device 1: /dev/input/event11
name: "compass_sensor"
add device 2: /dev/input/event8
name: "barometer_sensor"
add device 3: /dev/input/event7
name: "light_sensor"
add device 4: /dev/input/event6
name: "proximity_sensor"
如您所见,您的设备别名为“event6”
现在,进入目录/sys/class/input/input6
cd /sys/class/input/input6
echo 1 > enable # TO ACTIVATE THE SENSOR
echo 0 > enable # TO TURN IT OFF AGAIN
关于android - 使用 adb 从损坏的 android 设备中回收传感器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33525142/