android - 使用 adb 从损坏的 android 设备中回收传感器

标签 android adb sensors android-sensors

我刚刚弄坏了我的 s3。 3 年前,它还是最好的智能手机之一。

问题如何通过usb获取手机惯性传感器的值?

我想使用设备的加速度计、陀螺仪、磁力计、气压计和 gps 传感器。

假设我们想要得到:

  • 沿三个轴的原始加速度数据。

我连接了 USB 电缆并运行了 adb rootadb 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/

相关文章:

android - 在ListView中获取位置过滤项

android - Android Lollipop 上的海拔 + 透明度错误

php - 如何解析字符串以通过ADB发送短信

android - 如何使用脚本查询android sqlite数据库

java - 不同设备制造商的传感器实现

c++ - 在哪里可以找到用于机器人技术的 C/C++ Linux API?

linux - 如何通过Shell将温度和对应的时间存储到文件中?

java - mediaplayer.isPlaying 始终为 false

android - E/媒体播放器 : error (1, -19), E/媒体播放器 : error (0, -38)

android - adb安装进度条