2015-11-04 3 views
2

Я просто сломал свой s3. 3 года назад это был один из лучших смартфонов.Утилизация датчиков из сломанного устройства Android с помощью adb

Вопрос Как я могу получить значения инерционных датчиков телефона через usb?

Я хотел бы использовать акселерометр, гироскоп, магнитометр, барометр и GPS-датчики устройства.

Давайте предположим, что мы хотим получить:

  • данные необработанного по временам ускорения по трем осям.

Я подключил кабель USB и запустил adb root и adb shell. ОК.

[email protected]:/ # find/-type d -iname "sensors"       
/sys/devices/virtual/sensors 
/sys/class/sensors 

'/ SYS/класс/сенсоров каталог содержит:

[email protected]:/ # ls sys/class/sensors           
accelerometer_sensor 
barometer_sensor 
gyro_sensor 
light_sensor 
magnetic_sensor 
proximity_sensor 

Проблема

В сырые измерения не меняют даже если наклонить телефон. Датчик находится в в режиме ожидания. Он всегда отображает те же значения.

[email protected]:/sys/class/sensors/accelerometer_sensor # cat raw_data    
-74,121,1016 

Я заметил систему питания/управления папкой, которая контролирует состояние питания датчика.

[email protected]:/sys/class/sensors/accelerometer_sensor # cat power/control  
auto 

Я попытался с echo on/yes/ok/yeah/wtf > power/control, но ничего не изменилось.

Я помню, что когда у меня был экран телефона, достаточно было открыть приложение Android с разрешениями датчиков, такими как Google Maps, с функцией компаса, чтобы включить датчики и получить значения, обновленные с постоянной ставка. Приложение Java, вероятно, пишет что-то в файле, чтобы активировать датчики и считывать необработанные значения.

Как активировать датчики из корпуса?

+0

Не уверен, что если вы можете сделать это, но все же вы можете запустить приложение, которое использует его даже с сломанным экраном, чтобы обновить необработанные значения или я ошибаюсь? – Nanoc

+0

К сожалению, экран сломан, единственное возможное взаимодействие - через USB-кабель. – UserK

+0

В чем проблема с запуском приложения через adb? вы даже можете установить новый. – Nanoc

ответ

2

Использование

[email protected]:/ # getevent -S 

Вы можете получить список всех датчиков .. смотреть на один называется «proximity_sensor» и получить имя устройства. Пример.

[email protected]:/ # 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/класс/вход/данных 6

cd /sys/class/input/input6 
echo 1 > enable # TO ACTIVATE THE SENSOR 
echo 0 > enable # TO TURN IT OFF AGAIN