Kategorie
Android Porady Zrób to sam

Jak używać komórki z Androidem, gdy nie możemy dotykać ekranu

Niniejszy poradnik jest przeznaczony dla osób z tetraplegią, zanikiem mięśni lub innymi niepełnosprawnościami, które utrudniają lub uniemożliwiają korzystanie ze smartfona. Pokażę, w jaki sposób przesłać zawartość ekranu komórki z Androidem do systemu Windows oraz jak kursorem w Windows symulować dotknięcia ekranu.

Pomysł na artykuł zawdzięczam Wojtkowi Sawickiemu, dziennikarzowi muzycznemu zmagającemu się z chorobą Duchenne’a. W jego social mediach przeczytałem o problemie z dostępem do SMS-ów z banku – proponowane rozwiązanie znajdziecie poniżej.

Proces konfiguracji telefonu wymaga wykonania serii operacji na ekranie dotykowym, lecz jest jednorazowy. Potem smartfon podłączamy kablem do komputera i odkładamy gdziekolwiek, od tej chwili będzie kontrolowany z peceta. W dalszej części tekstu zakładam, że docelowy użytkownik jest w stanie swobodnie kontrolować kursor systemu Windows – to da się robić między innymi wzrokiem lub językiem. Pożądana będzie możliwość przesuwania kursora z wciśniętym lewym klawiszem myszki.

Napisz mi, czego brakuje w tekście!

Artykuł będzie uzupełniany i poprawiany tak, aby był jak najbardziej użyteczny. Jeśli natrafisz na jakiś problem, daj znać e-mailem (tomasz.zielinski@gmail.com), spróbuję znaleźć rozwiązanie. Może się okazać, że napotkana przez ciebie trudność da się obejść w bardzo prosty sposób, więc nie wahaj się do mnie napisać.

Z jakich mechanizmów skorzystamy?

W każdym telefonie z Androidem można aktywować tzw. „opcje programistyczne” czyli zestaw ustawień przydatnych dla programistów i testerów oprogramowania. Przygotowują oni tzw. testy automatyczne, w których wszystkie funkcje apki mobilnej są kolejno testowane przez zestaw skryptów zastępujących użytkownika. Takie skrypty symulują uruchamianie aplikacji, dotykanie ekranu palcem, pykanie przycisków itd. – choć od strony technicznej jest to realizowane poprzez wysyłanie po kablu zestawu komend w rodzaju „kliknięcie ekranu, współrzędne X/Y” albo „przesunięcie palca z pozycji A do B w ciągu 1.5 sekundy”.

W testach automatycznych często wykonywane są też zrzuty zawartości ekranu. Pozwala to na sprawdzenie, czy wygląd i sposób działania aplikacji nie uległy zmianie. Testy są uruchamiane po każdej modyfikacji kodu źródłowego, możliwe jest więc automatyczne wykrycie usterki i wstrzymanie wydania nowej wersji aplikacji do czasu poprawienia błędu.

Opisane funkcje przydadzą nam się do zdalnego sterowania telefonem. Specjalną aplikacją podłączymy się z peceta do ekranu komórki i wyświetlimy jego zawartość w osobnym oknie. Kliknięcia w obrębie tego okna będą przesyłane do telefonu i interpretowane jak dotknięcia palcem ekranu.

Czego potrzebujemy

  • telefonu z Androidem w wersji 5 lub nowszej
  • komputera z systemem Windows
  • kabla USB do połączenia komputera z telefonem

Uwaga dotycząca wersji Androida: nowszy będzie lepszy, wersja 5 pochodzi z roku 2014 i jest już naprawdę prehistoryczna. Najlepiej celować w urządzenia z wersją co najmniej 7, mające nie więcej niż trzy lata – choć jak zwykle lepszy jest starszy telefon niż żaden.

Aktywujemy opcje programistyczne

Aby aktywować panel opcji programistycznych, należy włączyć aplikację Ustawienia, wybrać opcję „Informacje o telefonie”, na tym ekranie odnaleźć pozycję „Numer kompilacji” i pyknąć ją palcem siedem razy. Udana operacja zostanie potwierdzona tekstem „jesteś teraz programistą”.

Niektórzy producenci telefonów przebudowują strukturę aplikacji Ustawienia według własnych pomysłów, więc ścieżka do pola „Numer kompilacji” może być inna. Jeśli nie możesz jej odnaleźć, przyślij e-mailem markę, model i (jeśli znasz) wersję oprogramowania, postaram się dodać informację o problematycznych przypadkach.

Pozycja menu „Opcje programistyczne” pojawi się albo w menu głównym, albo pod pozycją „System”, niekiedy trzeba tam na końcu listy kliknąć pozycję „więcej” lub „zaawansowane”. Po wejściu do opcji programistycznych:

  • upewniamy się, że główny wyłącznik (w belce górnej) jest aktywny
  • aktywujemy opcję „Debugowanie USB”
  • jeśli gdzieś poniżej masz opcję „Debugowanie USB (ustawienia bezpieczeństwa)” lub podobną, ją również aktywuj

Gdy teraz podłączysz telefon do komputera przez kabel USB, w górnym pasku pokaże się powiadomienie „Podłączono moduł debugowania USB”. Będzie ono stale przypominać, że komputer ma rozszerzony dostęp do tego urządzenia.

Pobieramy program scrcpy

Na stronie github.com/Genymobile/scrcpy znajdziemy darmowe narzędzie o nazwie scrcpy (skrót od: screen copy czyli kopia ekranu). Gdy piszę niniejszy tekst, najnowsza wersja to 1.16, dostępna do pobrania w paczce scrcpy-win64-v1.16.zip

Pobieramy plik ZIP, rozpakowujemy do wybranego katalogu. Oto lista plików, które się tam znajdują, wraz z objaśnieniem:

  • adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll – biblioteki programistyczne zarządzające komunikacją z telefonem
  • avcodec-58.dll, avformat-58.dll, avutil-56.dll, SDL2.dll, swresample-3.dll, swscale-5.dll – biblioteki do obsługi grafiki i streamingu obrazu
  • scrcpy-server – program instalowany automatycznie na telefonie, wysyłający obraz do komputera
  • scrcpy.exe – główny program wyświetlający obraz z telefonu, wersja z konsolą tekstową (gdy coś nie działa, ta wersja wyświetli dodatkowe informacje)
  • scrcpy-noconsole.exe – główny program wyświetlający obraz z telefonu, wersja bez konsoli tekstowej (używaj go zamiast scrcpy.exe, gdy wszystko działa jak należy)

Upewnijmy się, że telefon jest podłączony do komputera. Gdy po raz pierwszy uruchomimy scrcpy.exe, na ekranie telefonu powinniśmy zobaczyć następujące okno dialogowe z pytaniem, czy traktować komputer jako zaufany – zaznaczamy „zawsze” i potwierdzamy wybór.

Jeśli pytanie się nie pojawi, odłączamy i podłączamy kabel, po czym ponownie uruchamiamy scrcpy.exe. Gdy wszystko pójdzie dobrze, powinniśmy zobaczyć na komputerze okno z zawartością ekranu telefonu. Jeśli coś nie działa, przeskocz na koniec tekstu.

Jakie opcje mogą nam się przydać?

Program scrcpy.exe może być uruchamiany z linii komend z parametrami, których pełną listę zobaczymy po użyciu opcji --help (czyli wydaniu komendy scrcpy.exe --help). Większość jest też opisana na stronie github.com/Genymobile/scrcpy

Lista przydatnych parametrów:

-b (bitrate) określa jakość przekazywanego obrazu – wartość domyślna to 8M, zwiększ liczbę aby podnieść jakość animacji, obniż jeśli telefon nie nadąża i animacja się rwie

--lock-video-orientation – zablokowanie orientacji ekranu w jednej z czterech pozycji, wartości od 0 do 3, gdzie zero to domyślna orientacja portretowa. Dzięki temu telefon może leżeć w jakiejkolwiek pozycji, zaś zawartość ekranu nie będzie się obracać.

--window-borderless – otwierane okienko będzie pozbawione belki tytułowej

--stay-awake – zapobieganie przejściu urządzenia w tryb uśpienia; skoro jest podłączone kablem to nie zależy nam na oszczędzaniu baterii

--turn-screen-off – wygaszenie ekranu telefonu, gdy obraz jest przesyłany do komputera; przydatne gdyby przeszkadzała nam jego poświata

Przydatne klawisze skrótu:

ctrl + kliknięcie + przesuwanie = symulacja zoomu dwoma palcami

lewy-alt + h = przycisk HOME (także: środkowy klawisz myszy)
lewy-alt + b = przycisk BACK (także: prawy klawisz myszy)
lewy-alt + s = przycisk przełączania programów
lewy-alt + strzałki góra/dół = regulacja głośności
lewy-alt + strzałki lewo/prawo = obrót ekranu
lewy-alt + p = przycisk POWER
lewy-alt + n = rozwinięcie/zwinięcie rolety systemowej

Klawisz lewy-alt można zmienić na inny opcją --shortcut-mod

Co zrobić, gdy coś nie działa?

Wskazówki po angielsku można znaleźć na stronie github.com/Genymobile/scrcpy/blob/master/FAQ.md

Gdy trafisz na problem którego nie uda Ci się rozwiązać, daj znać e-mailem – będziemy walczyć.

Samodzielna diagnostyka

Najpierw zaglądamy do menedżera urządzeń w Windows – telefon z aktywnym trybem programisty powinien być widoczny jako urządzenie „Android” w gałęzi „Urządzenia uniwersalnej magistrali szeregowej”

Brak takiej pozycji może oznaczać, że potrzebujesz dodatkowych sterowników od producenta telefonu – wskazówki, skąd je wziąć, będą tutaj developer.android.com/studio/run/oem-usb.html#Drivers

Kolejnym krokiem jest sprawdzenie, co wypisze komenda adb.exe devices

Ignorujemy informację o startowaniu usługi zapewniającej komunikację z telefonem:

daemon not running; starting now at tcp:5037
daemon started successfully

Patrzymy na listę urządzeń:

List of devices attached
9b1ce05a unauthorized

Status „unauthorized” oznacza, że na komórce nie kliknięto jeszcze zgody na zarządzanie nią z komputera. Kabel należy wypiąć, wpiąć, spróbować ponownie, klepnąć zgodę.

List of devices attached
9b1ce05a device

Taki napis oznacza, że z połączeniem w trybie programisty wszystko jest w porządku (oczywiście symbol 9b1ce05a to mój telefon, u ciebie będzie inny).

Jeśli widzisz więcej niż jedną pozycję na liście, to znaczy, że masz do komputera podłączone więcej niż jedno urządzenie z Androidem. Trzeba wówczas przy wywołaniu scrcpy.exe użyć opcji -s symbol aby wskazać, ekran którego telefonu ma trafić do okienka pod Windows.

Jeśli zamiast tego zobaczysz komunikat

adb: error: failed to get feature set: no devices/emulators found

to może to oznaczać brak niezbędnych sterowników – zerknij na tę listę developer.android.com/studio/run/oem-usb.html#Drivers

Zakończenie

To już wszystko. Raz skonfigurowany telefon powinien działać z scrcpy za każdym razem. Czasem zdarza się, że aktualizacja oprogramowania systemowego wyłącza opcje programistyczne albo wyczyści listę zaufanych komputerów, wówczas konieczne będzie powtórzenie kroków opisanych na początku tekstu.

Napisz do mnie, jeśli trafisz na jakiś problem z jakimś programem albo użyciem konkretnej funkcji telefonu – spróbujemy znaleźć rozwiązanie. Daj też proszę znać, gdy dzięki niniejszemu poradnikowi zaczniesz korzystać ze smartfona, który wcześniej pozostawał dla ciebie niedostępny.

3 odpowiedzi na “Jak używać komórki z Androidem, gdy nie możemy dotykać ekranu”

Nie wszyscy mają Windows, część użytkowników po wybiórczym wstrzymaniu aktualizacji Windows 7 (bo przecież Edge zamiast IE opublikowano) przesiadła się na Linuxa. Dla Linuxa pewnie jest jeszcze więcej narzędzi i łatwiej zadania oskryptować. Do SMSów autoryzacyjnych z banku można zrobić bramkę sms2e-mail, mam od lat.
Jest dostępny serwer VNC na telefony, chyba VMLite VNC Server, jest płatny, ale da się go uruchomić na telefonie bez roota.

scrcpy dostępny jest również w wersji dla Linuksa. Działa oimw identycznie jak opisana powyżej wersja windowsowa.

Do sms z banku to najprościej mieć osobny numer prepaid (dodatkowo zabezpieczenie przez SIM swapem, bo złodziej „raczej” tego numeru nie pozna) wsadzony w modem podłączony do komputera.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *