Перейти к содержанию
  • 0

ADB и беспроводное подключение. Часть I - Шлем и ПК


Varset

Вопрос

  • Модераторы

Как подключить шлем по ADB к ПК через Wi-Fi - знают достаточно многие. Но здесь мы расскажем о том, как организовать такое подключение в любой момент, не используя кабель вообще. Точнее, только один самый первый раз, при открытии порта.

 

Зачем это может быть нужно? Ну, например, для владельцев VR-клубов удаленно считывать статус шлема, скажем, чтоб не высаживать аккумулятор в ноль, можно сделать опрос шлема каждые пять минут и смотреть уровень заряда. Как только он станет ниже определенного уровня, отправить на шлем сообщение с предупреждением или вообще его выключить.

 

Или, скажем, управлять шлемом из шлема же, без ПК вообще - установить нативное разрешение или частоту и т.д.

Но об этом в следующей статье.

 

 

 

 

Ссылка на комментарий
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0
  • Модераторы

Вачале для особо дотошных немного теории о том, как работает ADB, по каким портам подключается и так далее: :https://developer.android.com/tools/adb

 

Для остальных сразу перейдем к практике.

Режим разработчика на шлеме должен быть включен

Пакет ADB программ должен быть скачан и установлен в системе или в каталоге со всеми запускаемыми командами.

 

Прежде всего нам понадобится несколько приложений:

(в конце поста можно будет сразу скачать эти приложения)

  • Oculus Wireless ADBhttps://github.com/thedroidgeek/oculus-wireless-adb/releases
  • AndroidMdnsDiscover2.exe: Рукописная программа, написанная на C на основе скрипта. Аналог nmap, находит адрес и порт шлема, но работает раз в десять быстрее.
  • Батник с двумя командами в нем:
adb shell pm grant tdg.oculuswirelessadb android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant tdg.oculuswirelessadb android.permission.READ_LOGS

 

Далее еще несколько батников и команд.

 

Начнем. 

1. Скачиваем и устанавливаем на шлем программу Oculus Wireless ADB.

 

2. Создаем bat или cmd файл с двумя командами:

adb shell pm grant tdg.oculuswirelessadb android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant tdg.oculuswirelessadb android.permission.READ_LOGS

 

3. Поключаем шлем USB кабелем к ПК, выполняем (запускаем) этот батник.

 

4. Открываем консоль cmd и выполняем в ней такую команду:

adb tcpip 5555

 

5. Запускаем на шлеме только что установленную программу Oculus Wireless ADB.

 

6. В окне программы ставим квадратик на поле 5555 и в следующем окне нажать Ok. Затем включить тумблер ADB Wireless Connect.

 

7. Во всплывших окнах "Эта (ваш Wi-Fi)  сеть будет использоваться для подключения и бла-ба-бла" нажать "Разрешать всегда подключение к этой сети"

 

8. Во всплывшем окне "Разрешить отладку по USB?" нажать "Разрешать всегда" (дважды).

 

Все, можнонажать крестик и закрыть программу, она свернется.

 

9. Далее на ПК создаем и выполняем такой батник:

For /f "tokens=*" %%a in ('AndroidMdnsDiscover2.exe') do set check=%%a
adb connect %check%
adb devices
pause

 

В консольном окне мы должны увидеть примерно такое:

connected to 10.0.0.64:34917
List of devices attached
10.0.0.64:34917 device

 

Это означает что мы успешно подключились к шлему с ПК по беспроводному ADB. Подключение будет сохраняться до тех пор, пока вы не перезагрузите шлем или ПК, или не прибьете процесс adb.exe на ПК или после игр, нативных или на ПК, или после отключения Wi-Fi при уходе в спящий режим. В этом случае шлем может остановить неактивный фоновый процесс  - демон adb. 

 

Как только решите снова использовать беспроводное подключение, просто переподключите шлем:

  • Зайти в шлем, запустить программу Oculus Wireless ADB и щелкнуть тумблером ADB Wireless Connect (пункт 6).
  • Затем на ПК выполнить вышеописанный батник (пункт 9)
  • Кабель подключать не нужно.

 

Иногда случается так, что при попытке подключения показывает, что устройство offline.

Попробуйте в батник в пункте 9 первой строчкой добавить такую:

adb disconnect

А после нее уже все остальное. На случай, если вдруг окажется, что подключение не единственное или устройство в offline.

 

Если эта команда не помогает и устройство все равно остается offline, следует перезапустить сервер adb на ПК, вот так:

adb kill-server
adb start-server

 

И снова запустить батник подключения. Словом, экспериментируйте.

 

Бонус. Вот так, например, может выглядеть код с опросом уровня заряда аккумулятора, и если он меньше 10%, батник выдаст предупреждение:

@echo off
@FOR /F "tokens=2" %%G IN ('adb shell dumpsys battery ^| findstr "level:"') DO set batlevel=%%G
@echo %batlevel%
@if %batlevel% LSS 10 goto _qcharge
@echo Ok
@pause
exit
:_qcharge
@echo Шлем разрядился!
rem Чтобы выключит его, раскомментируйте строку ниже
rem adb shell reboot -p
@pause
exit

 

 

Скачать:

Oculus Wireless ADB v1.2: tdg.oculuswirelessadb-1.2.apk

AndroidMdnsDiscover2.exe: AndroidMdnsDiscover2.7z

 

Продолжение следует...

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...

Важная информация

Правила пользования сайтом Условия использования