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ówlewy-alt + strzałki góra/dół
= regulacja głośnościlewy-alt + strzałki lewo/prawo
= obrót ekranulewy-alt + p
= przycisk POWERlewy-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.
16 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.
A ja bym zaproponował coś tak banalnego jak przewód USB OTG i klawiaturę USB z touchpadem. O ile to nie jest rozmijające się z ideą artykułu.
etam ja po prostu podłończyłem myszek pod port USB i dałem zasilanie z huba
Hej, pomijając fakt, że można użyć stacji dokującej na USB-C z wyjściem video i hubem usb etc. i w ogóle nie mieć komputera, to są jeszcze ciekawymi opcjami są teamviewer (choc tu sa problemy z bezpieczenstwem, no i dalej potrzebny jest komputer), vnc po LAN (potrzebny komputer), lub screen mirroring (np. do chromecasta albo jakiegos nowszego tv) + klawiatura i myszka (lub stosowny manipulator) po USB OTG (mogą być bezprzewodowe). Dodatkowo, są customowe rozwiązania jak Samsung DeX, w wersji kablowej i bezprzewodowej. Ciekawą opcja jest też używanie Androida na maszynie wirtualnej, ale działa to różnie, no i nie wiem jak z dostępem do karty SIM (może potrzebny modem na USB?).
Idąc jeszcze dalej, jeśli zależy nam tylko na SMSach, to są różne programy, które pozwalają to robić z poziomu systemu operacyjnego, laczac sie z telefonem po wifi (w tym jakiś malo udany windsowsowy).
Oczywiście każde rozwiązanie ma swoje wady i zalety.
Możesz jeszcze wspomnieć o nakładkach graficznych na scrcpy. Na szybko sprawdzając github widzę co najmniej dwa takie projekty.
Jest jeszcze jeden problem: scrcpy korzysta z niepublicznych API i może przestać działać w którejś z przyszłych wersji Androida.
Ktoś podpowie jak zrobić, aby scrcpy włączał się automatycznie po podłączeniu smatfona pod USB?
Dodatkowo z określonymi parametrami np. scrcpy –always-on-top –stay-awake
Pod Linuksem: https://zeromod.in/posts/scrcpy-with-autoadb/
Pod Windows – chyba rozważane w https://github.com/rom1v/autoadb oraz https://github.com/Genymobile/scrcpy/issues/352
Dziękuję za linki, ale chyba sam tego nie ogarnę.
Po co komplikować sprawę. Proponuję sprawdzić program EVA Facial Mouse na Androida
Wszystko ładnie, pięknie ale jak ekran nie działa to jak uzyskać dostęp? Mam kilka takich telefonów z których chce odzyskać dane, jedyny problem to zbite wyświetlacze/dotyk.
Wszystko dobrze ale jak się dostąć do telefonu jak wyświetlacz nie reaguje i jest zalany żadne debugowania nie można włączyć po prostu nic nie można zmienić w telefonie (bo tu wszyscy piszą jak się dostać gdy ekran nie reaguje a ustawiają przez ekran telefonu debugowanie tylko jak jak ekran nie działa). Wiec stawiam pytanie jak się dostać bez aktywnego wyświetlacza – telefon zgłasza się pod Windowsem ale jest zabezpieczony znakiem i trzeba potwierdzić/zaakceptować na ekranie tel transmisje danych – czyli jak to pominąć ewentualnie jak wyświelkić ekran telefonu na komputerze i odblokować telefon na kompie i potwierdzić/zezwolić na transmisje danych na ekranie komputera. Samsung A9 android versia 8
Nie da się. To byłaby wielka dziura bezpieczeństwa, gdyby było to możliwe
Dzień dobry, poprawnie skonfigurowałem telefon i soft więc widzę ekran smartfona na monitorze.
Niestety ekran smartfona został tak uszkodzony że samoistnie ciągle klika sobie gdzieś po lewej stronie pulpitu Android.
Myszka jest aktywna na ekranie smartfona jednak mało co można nią zrobić.
Czyy można w jakiś sposób deaktywować ekran dotykowy pozostawiając możliwość operowania myszą?
Hej!
Obawiam się, że poniższe tricki wymagają uprzedniego zrootowania telefonu:
https://stackoverflow.com/questions/63774578/disable-and-enable-android-touchscreen-via-adb
https://android.stackexchange.com/questions/217960/semi-permanently-disable-touch-input