Artykuł: Android - zdalne sterowanie

Choć obsługa telefonu z ekranem dotykowym jest nieustannie usprawniana tak, by osobom z dysfunkcją wzroku nie sprawiać żadnego problemu, możliwość wprowadzania pewnych danych z komputera, wymiany plików między naszymi zasobami, a skromną pojemnością naszego telefonu lub dołączonej do niego karty pamięci, lub po prostu wygoda obsługi telefonu porzuconego gdzieś w drugim pokoju podczas, gdy uczymy się, pracujemy lub dobrze się bawimy korzystając z komputera okazują się być nie do przecenienia. Czołowi producenci urządzeń bazujących na systemie operacyjnym Android dostarczają własne oprogramowanie pozwalające na synchronizację plików, wysyłanie wiadomości SMS, zarządzanie kontaktami i wiele innych. Programy te, okazują się niestety niejednokrotnie niedostępne dla czytników ekranu, a także zajmują duże ilości przestrzeni dyskowej  i zasobów. Nie są one także często tworzone dla systemów operacyjnych innych niż wszechobecny Windows, a zdarza się także, że pracujemy w środowisku, w którym instalacja czegokolwiek nie jest możliwa. Rozwiązania służące do zdalnego sterowania Androidem tworzy też samo Google pozwalając na synchronizację kontaktów pomiędzy GMailem, a naszym urządzeniem lub instalację aplikacji ze sklepu Play przy użyciu przeglądarki internetowej i strony sklepu, jednak to nie wszystko co można w tej materii osiągnąć.

Po raz kolejny Android zaskakuje otwartością, a co za tym idzie, kreatywnością twórców aplikacji oferując kilka nietypowych rozwiązań pozwalających na zdalny dostęp do naszych urządzeń mobilnych. Sporo z nich zyskało sobie popularność dając użytkownikom nieograniczone możliwości kontroli za pomocą na przykład panelu, do którego logujemy się za pomocą strony internetowej. Tu niestety zła wiadomość dla użytkowników z dysfunkcją wzroku. Najpopularniejsze z nich takie jak Airdroid czy Mighty Text prezentują dostępność w stanie opłakanym lub jej całkowity brak, natomiast ich twórcy nie przewidują w najbliższej przyszłości usprawnień pod kątem programów odczytu ekranu. Mimo to istnieje kilka alternatyw, które bez problemu można obsłużyć nie widząc

W niniejszym artykule opiszę kilka z nich, które po przeprowadzonych przeze mnie testach okazały się być najbardziej dostępne i przydatne. W tym artykule może pojawić się dość dużo nietypowej terminologii komputerowej. Mam jednak nadzieję, że objaśnienia, które starałem się na bieżąco umieszczać pomogą odnaleźć się nawet początkującym użytkownikom, tak więc zachęcam do uzbrojenia się w cierpliwość i zapraszam do lektury.

GTalk SMS

Naszą podróż w świat aplikacji do zdalnego sterowania Androidem rozpoczniemy od propozycji moim zdaniem najciekawszej z uwagi na sposób w jaki to sterowanie jest przeprowadzane. GTalk SMS to bramka pomiędzy urządzeniem z systemem Android, a dowolnym komunikatorem internetowym wspierającym protokół Jabber taki jak Miranda czy IM+ dla Symbiana. Za pomocą systemu komend, które z początku mogą wydawać się skomplikowane, ale w miarę używania GTalk SMS powinniśmy być w stanie zapamiętać te z nich, których używamy najczęściej. Aplikacja oferuje pokaźną gamę funkcji naszego smartfona z pozycji okienka rozmowy Mirandy lub innego klienta Jabbera. Oprócz podstawowych zadań, których oczekuje się od tego typu programu takich jak wysyłanie i odbieranie wiadomości SMS, mamy do dyspozycji także opcje zaawansowane takie jak sterowanie odtwarzaczem muzyki, zmiana parametrów syntezatora mowy czy, po uzyskaniu uprawnień roota, komunikacja z konsolą systemu. Można tu spokojnie mówić o wykorzystaniu oryginalnego pomysłu do granic możliwości zarówno sterowania urządzeniem jak i wykorzystania wszelkich możliwych standardów oferowanych przez XMPP. Takie podejście sprawia, iż momentami aplikacja wydaje się być mało intuicyjna dla użytkownika, który komputera używa jako narzędzia pracy i rozrywki, nie jako ulubionej zabawki. Dla przykładu, za pomocą GTalk SMS pobierzemy dowolny plik z naszego telefonu, o ile jesteśmy w stanie wpisać ręcznie ścieżkę, pod którą ów plik się znajduje. Z dobrych stron takiego założenia można wymienić organizację wątków SMS w formie osobnych pokoi czatowych, w których rozmowa toczy się jedynie między nami, a konkretnym odbiorcą bez konieczności wpisywania jakichkolwiek dodatkowych komend, zupełnie tak jakbyśmy gawędzili z siedzącym przy komputerze znajomym.

W chwili pisania artykułu aplikacja posiada dość poważny błąd uniemożliwiający jej współpracę z  niektórymi serwerami XMPP. Z tego powodu polecam używać kont na serwerach opartych na oprogramowaniu Openfire. Przykładem takiego  serwera jest ten oferowany pod adresem andrelouis.com. Podczas moich testów okazało się także, że pełną kompatybilność ze wszystkimi oferowanymi przez aplikację funkcjami uzyskamy wykorzystując po obu stronach- zarówno na komputerze jak i w telefonie – konta na tym samym serwerze.

Osobom, które z protokołem Jabber spotykają się po raz pierwszy, użyta już powyżej terminologia nic nie mówi, a mimo to chciałyby sterować swoim telefonem za pomocą Mirandy, należy się kilka słów wyjaśnienia co do procesu tworzenia i konfiguracji kont.

Jabber to otwarty protokół komunikacyjny, w którym każdy ma prawo do wyboru takiego dostawcy usług, jaki mu się podoba, a przy tym nie traci możliwości kontaktu z użytkownikami innych dostawców. Dobre jest tutaj porównanie Jabbera do emaila, który działa jak Gadu-Gadu: każdy dostaje swój adres w formacie użytkownik@serwer.pl tam gdzie chce i może rozmawiać ze znajomym uzytkownik1@serwer2.pl bez żadnych problemów.

Jak uzyskać takie konto i jak zgrać wszystko razem, by Miranda chciała współpracować z naszym smartfonem?

W Mirandzie otwieramy menu główne i przechodzimy do pozycji "Konta". Następnie, za pomocą klawisza Tab, wybieramy opcję "Dodaj". Pojawi się kreator nowego konta lokalnego w Mirandzie. Tu nadajemy naszemu kontu nazwę, która odróżni je od innych takich jak GG czy Facebook, oraz ustalamy jakiego protokołu ma to być konto – wybieramy Jabber. Następnie przechodzimy tabem na listę kont – jest to pierwszy element, który jest widoczny po otwarciu menedżera kont z menu – i po podświetleniu nowoutworzonego konta, wypełniamy pola z danymi, po których przechodzimy klawiszem tab w sposób następujący:

- użytkownik – nazwa użytkownika  nowego konta Jabber

Serwer: andrelouis.com (to tylko moja sugestia, która została sprawdzona i działa, jeżeli preferujecie inny serwer, możecie go śmiało użyć)

Hasło: hasło konta

Po drodze można trafić także na inne pola, jednak nie należy w nich nic zmieniać. Następnie naciskamy przycisk "Utwórz konto", potwierdzamy hasło wpisując je ponownie, naciskamy przycisk OK, w kolejnym okienku potwierdzenia, które się pojawi i czekamy na informację zwrotną o pomyślnym utworzeniu konta.

Jako, że potrzebować będziemy dwóch kont- jednego dla komputera, a drugiego dla telefonu -  procedurę należy powtórzyć ponownie, wpisując inną nazwę użytkownika. Następnie, obydwa konta należy połączyć za pomocą  odpowiedniej opcji w menu status. Ostatnim krokiem, który podejmujemy z poziomu komputera jest dodanie nawzajem jednego konta do kontaktów drugiego. W tym celu w menu – Szukaj/dodaj kontakty, wybieramy z pola kombi jedno z dwóch kont Jabber, które właśnie utworzyliśmy i wyszukujemy drugi kontakt podając jego pełny adres np. mojtelefon@andrelouis.com. Po dodaniu kontaktu i pomyślnym przyjęciu autoryzacji z obu stron, konto przeznaczone do użytku na telefonie możemy rozłączyć, a nawet usunąć z Mirandy naciskając na nim klawisz del w menedżerze kont, aby uniknąć przypadkowego połączenia. Teraz pora na przejście do aplikacji GTalk SMS w telefonie.

Okno główne aplikacji podzielone jest na trzy zakładki: ""Settings" – ustawienia, Connection" – połączenie oraz "Help&Support" – Pomoc i wsparcie. Domyślnie aktywna jest druga zakładka i to tu możemy podać dane logowania oraz połączyć smartfona z kontem Jabber. Pola znajdujące się w tej zakładce wypełniamy w sposób następujący:

- login: cały adres Jabber: login@serwer.com

Password: hasło kont

Auto-connect: zaznaczamy jeśli chcemy, by aplikacja automatycznie łączyła telefon z kontem po jej uruchomieniu

- Account: adres konta na komputerze, na którego wiadomości z komendami aplikacja ma reagować

Po uzupełnieniu wszystkich danych naciskamy przycisk "Connect" i czekamy, aż Miranda wyświetli kontakt telefonu jako dostępny.

Aplikacja posiada także swoje własne ustawienia. Możemy za ich pomocą spersonalizować takie aspekty aplikacji jak zaawansowane ustawienia Jabberowe, kiedy aplikacja ma się uruchamiać lub zamykać, jakiego dostawcy map używać podczas śledzenia położenia telefonu lub czy w opisie kontaktu ma być wyświetlany aktualny stan baterii.

Od tej pory telefon możemy odłożyć na bok i całą kontrolę nad urządzeniem przeprowadzać z poziomu Mirandy lub innego komunikatora.

Po wpisaniu komendy help:all otrzymamy listę wszystkich dostępnych komend. Z uwagi na brak polskiej wersji językowej aplikacji, pozwolę sobie zamieścić kompletną ich listę.

"alias:add:#nazwaaliasu#:#kontakt#" : dodaje alias dla podanego kontaktu lub numeru w celu stworzenia przyjaznej nazwy, łatwej do zapamiętania

- "alias:del:#nazwaaliasu#" : Usuwa podany alias

- "alias:show:#nazwaaliasu#" : pokazuje informacje na temat wskazanego aliasu. Jeśli w miejscu#nazwaaliasu# wpiszemy "all" pokazana zostanie lista wszystkich zdefiniowanych aliasów

- "appfind:#aplikacja#" : Znajduje zainstalowaną aplikację.

- "applist" lub "apps" : Zwraca listę wszystkich zainstalowanych aplikacji.

- "applist:system" lub "apps:system" : Zwraca listę wszystkich zainstalowanych aplikacji systemowych.

- "applist:user" lub "apps:user" : Zwraca listę aplikacji zainstalowanych przez użytkownika.

- "appstart:#aplikacja#" lub "start:#aplikacja#" : Uruchamia wskazaną aplikację.

- "battery" lub "batt" : pokazuje poziom baterii w procentach.

- "bluetooth" lub "bt" : podaje aktualny stan adaptera Bluetooth: włączony/wyłączony.

- "bluetooth:off" lub "bt:off" : wyłącza bluetooth.

- "bluetooth:on" lub "bt:on" : włącza bluetooth.

- "camera" lub "photo" : wykonuje zdjęcie i zapisuje je w folderze zdjęć.

- "camera:email" lub "photo:email" : wykonuje zdjęcie, zapisuje je w folderze zdjęć, a następnie wysyła mailem.

- "camera:list" lub "photo:list" : wyświetla listę wszystkich aparatów.

- "camera:set:#numer#" lub "photo:set:#numer#" : ustawia domyślną kamerę, która ma zostać użyta do wykonania zdjęcia.

- "camera:xmpp" lub "photo:xmpp" : wykonuje zdjęcie, zapisuje je, a następnie wysyła za pomocą protokołu XMPP.

- "chat:#kontakt#" lub "c:#kontakt#" : tworzy nowy pokój czatowy ze wskazanym kontaktem, a następnie zaprasza nas do niego. Pozostaw pole na kontakt puste, by użyć ostatniego kontaktu

- "clipboard:#tekst#" lub "copy:#tekst#" : kopiuje tekst do schowka telefonu lub jeśli żaden tekst nie zostanie wpisany aplikacja prześle aktualną zawartość schowka.

- "cmd:#komenda#" : wykonuje komendę w shellu z uprawnieniami roota jeśli to możliwe.

- "contact:#kontakt#" : wyświetla informacje o wyszukanym kontakcie.

- "delsms" : Usuwa wiadomość SMS bez potwierdzenia!

- "delsms:all" : Usuwa wszystkie wiadomości SMS bez potwierdzenia!

- "delsms:contact:#kontakt#" : usuwa wszystkie wiadomości SMS w wątku wskazanego kontaktu bez potwierdzenia!

- "delsms:last:#numer#" : usuwa podaną liczbę ostatnich SMSów, domyślnie 1.

- "delsms:lastin:#numer#" : Usuwa podaną liczbę ostatnich odebranych SMS-ów, domyślnie1.

- "delsms:lastout:#numer#" : Usuwa podaną liczbę ostatnio wysłanych SMS-ów: domyślnie 1.

- "delsms:number:#numer_telefonu#" : usuwa wszystkie wiadomości w wątku podanego numeru telefonu bez potwierdzenia!

- "delsms:sent" : Usuwa wszystkie wysłane wiadomości bez potwierdzenia!

- "exit" lub "quit" : Zamyka aplikację GTalk SMS na telefonie.

- "findsms:#kontakt#:#wiadomość#" lub "fs:#kontakt#:#wiadomość#" : wyszukuje podaną wiadomość w wątku wskazanego kontaktu.

- "findsms:#wiadomość#" lub "fs:#wiadomość#" : wyszukuje wskazaną wiadomość we wszystkich wiadomościach SMS.

- "flash" lub "light" : włącza latarkę.

- "flash:off" lub "light:off" : wyłącza latarkę.

- "flash:on" lub "light:on" : włącz latarkę.

- "geo:#adres#" : Otwiera Mapy nawigację lub Street View pod podanym adresem.

- "http:#adres#" lub "https:#adres#" : Wkleja linki i otwiera je za pomocą odpowiedniej aplikacji.

- "ls:#ścieżka#" : Wyświetla listę plików i folderów w podanym folderze.

- "markasread:#kontakt#" lub "mar:#kontakt#":oznacza SMS jako przeczytany dla ostatniego odbiorcy bądź podanego kontaktu.

- "mms" lub "m" : wyświetla ostatniego otrzymanego MMS-a.

- "music" lub "zic" : steruje aktualnie włączonym odtwarzaczem muzycznym.

- "music:down" lub "zic:down" : zmniejsza głośność muzyki.

- "music:mute" lub "zic:mute" : wycisza muzykę.

- "music:next" lub "zic:next" : odtwarza następną piosenkę.

- "music:pause" lub "zic:pause" : wstrzymuje odtwarzanie muzyki.

- "music:play" lub "zic:play" : rozpoczyna odtwarzanie muzyki.

- "music:playpause" lub "zic:playpause" : przełącza pomiędzy odtwarzaniem, a pauzą.

- "music:previous" lub "zic:previous" : odtwarza poprzednią piosenkę.

- "music:stop" lub "zic:stop" : zatrzymuje muzykę.

- "music:unmute" lub "zic:unmute" : wyłącza wyciszenie muzyki.

- "music:up" lub "zic:up" : zwiększa głośność muzyki.

- "notification" lub "notif" : zarządza ustawieniami i czarną listą powiadomień.

Aby używać tej funkcji, należy włączyć usługę dostępmości GTalkSMS w ustawieniach systemu.

- "notification:hide:app:#nazwaaplikacji#" lub "notif:hide:app:#nazwaaplikacji#": dodaje aplikację do czarnej listy. Powiadomienia wszystkich aplikacji umieszczonych na czarnej, liście będą ignorowane.

- "notification:hide:msg:#tekst#" lub "notif:hide:msg:#tekst#" : dodaje komunikat do czarnej listy. Wszystkie powiadomienia zawierające komunikaty umieszczone na czarnej liście będą ignorowane.

- "notification:ignoredelay:#czaswms#" lub "notif:ignoredelay:#czaswMs#" : ustawia opóźnienie w celu ignorowania zduplikowanych powiadomień, w milisekundach.

- "notification:show:app:#nazwaaplikacji#" lub "notif:show:app:#nazwaaplikacji#" : usuwa aplikację z czarnej listy.

- "notification:show:msg:#tekst#" lub "notif:show:msg:#tekst#" : usuwa komunikat z czarnej listy.

- "phone" lub "p" : zarządza twoimi połączeniami przychodzącymi i wychodzącymi.

- "phone:call:#kontakt#" lub "p:call:#kontakt#" : nawiązuje rozmowę ze wskazanym kontaktem.

- "phone:calls:#liczba#" lub "p:calls:#liczba#" : wyświetla spis połączeń. Argument w formie liczby jest opcjonalny

- "phone:callspeaker:#kontakt#" lub "p:callspeaker:#kontakt#" : nawiązuje rozmowę ze wskazanym kontaktem włączając głośnik.

- "phone:dial:#kontakt#" lub "p:dial:#kontakt#" : wybiera numer wskazanego kontaktu.

- "phone:hangup" lub "p:hangup": rozłącza rozmowę.

- "phone:ignore" lub "p:ignore" : ignoruje przychodzącą rozmowę.

- "phone:reject" lub "p:reject" : odrzuca przychodzącą rozmowę.

- "phone:speaker" lub "p:speaker" : wyświetla aktualny stan trybu głośnomówiącego.

- "phone:speaker:[on|off]" lub "p:speaker:[on|off]" : przełącza głośnik na włączony lub wyłączony.

- "recipient" lub "re" : wyświetla ostatniego odbiorcę.

- "reply:#wiadomość#" lub "r:#wiadomość#" :Wysyła wiadomość o podanej treści do ostatniego odbiorcy.

- "ring:[0-100]" : Odtwarza dźwięk dzwonka dopóki nie zostanie wysłana komendy stop. Głośność pomiędzy 0, a 100, 0 oznacza wibrację, brak wartości oznacza aktualną głośność

- "ring:stop" : Zatrzymuje działanie komendy jak wyżej.

- "ringmode" : Pokazuje aktualny tryb dzwonka.

- "ringmode:normal" : Ustawia tryb dzwonka na normalny.

- "ringmode:silent" : Ustawia tryb dzwonka na cichy.

- "ringmode:vibrate" : Ustawia tryb dzwonka na wibracje.

- "rm:#ścieżkadopliku#" : Usuwa wskazany plik.

- "send:#plik#" : Wysyła wskazany plik przez XMPP. Należy podać ścieżkę absolutną, w przeciwnym razie ostatnio używany folder zostanie użyty

- "shell" : Otwiera konsolę systemową jako nowy czat.

- "sms" lub "s" : Wyświetla ostatnio wysłaną wiadomość od każdego kontaktu.

- "sms:#kontakt#" lub "s:#kontakt#" : Wyświetla ostatnio wysłaną wiadomość dla wskazanego kontaktu.

- "sms:#kontakt#:#wiadomość#" lub "s:#kontakt#:#wiadomość#" : Wysyła wiadomość SMS o podanej treści do wskazanego kontaktu.

- "sms:unread" lub "s:unread" : Wyświetla nieczytane wiadomości od każdego kontaktu.

- "tts-engine-list" lub "ttsenginelist" : Zwraca listę silników zamiany tekstu na mowę.

- "tts-engine:#silnik#" lub "ttsengine:#silnik#" : Ustawia silnik TTS. Nazwę silnika należy podać w formacie com.google.android.tts.

- "tts-lang-list" lub "ttslanglist" : Zwraca listę dostępnych języków zamiany tekstu na mowę.

- "tts-lang:#fr lub fr:CA#" lub "ttslang:#fr lub fr:CA#" : Ustawia język zamiany tekstu na mowę. Język należy podać wpisując jego kod lub kod jego kraju.

- "tts:#tekst na mowę#" lub "say:#tekst na mowę#" : Wypowiada wpisany tekst za pomocą silnika zamiany tekstu na mowę.

- "video:params:cameraMaxDurationInSec:[0-9999]" : Pozwala ustawić lub wyświetlić długość nagrywanego filmu. 0 = nieograniczona

- "video:params:cameraMaxFileSizeInMegaBytes:[0-9999]" : Ustawia lub pokazuje maksymalny rozmiar filmu w mb. 0 = nieograniczony

- "video:params:cameraProfile:[1080p|720p|CIF|QCIF]" : Ustawia bądź pokazuje obecny profil nagrywania filmów

- "video:params:cameraRotationInDegree:[0-359]" : Ustawia bądź pokazuje orientację nagrywanego filmu

- "video:start" : Rozpoczyna nagrywanie filmu

- "video:stop" : Zatrzymuje nagrywanie filmu

- "volume:#poziomgłośności#" lub "vol:#poziomgłośności#" :pozwala na sterowanie głośnością multimediów.

- "volume:down" lub "vol:down" : zmniejsza głośność muzyki.

- "volume:mute" lub "vol:mute" : wycisza muzykę.

- "volume:unmute" lub "vol:unmute" : wyłącza wyciszenie muzyki.

- "volume:up" lub "vol:up" : zwiększa głośność muzyki.

- "wappend:#tekst#" lub "wa:#tekst#" : Dodaje tekst jako wirtualna klawiatura.

- "where" : Wysyła powiadomienia o aktualnym położeniu telefonu dopóki nie wyślemy komendy .stop.

- "where:stop" : Zatrzymuje powiadomienia o położeniu telefonu.

- "wifi" lub "wlan" : Podaje informacje na temat adaptera wifi.

- "wifi:disable:#id#" lub "wlan:disable:#id#" : Wyłącza sieć o podanej nazwie

- "wifi:enable:#id#" lub "wlan:enable:#id#" : Włącza sieć o podanej nazwie

- "wifi:list" lub "wlan:list" : Pokazuje listę wszystkich, skonfigurowanych sieci

- "wifi:off" lub "wlan:off" : Wyłącza adapter WiFI.

- "wifi:on" lub "wlan:on" : Włącza adapter WiFI.

- "wifi:state" lub "wlan:state" : Podaje aktualny stan adaptera WiFi.

- "write:#tekst#" lub "w:#tekst#" : Wpisuje tekst jako wirtualna klawiatura (należy pamiętać o konieczności aktywacji klawiatury w ustawieniach systemu.

- "wsend:#tekstt#" lub "ws:#tekst#" lub "wl:#tekst#" : Wpisuje tekst jako wirtualna klawiatura, a następnie naciska klawisz Enter.

Komendy należy wpisywać bez znaku cudzysłowu na ich początku i końcu, zaś ich parametry z pominięciem krzyżyka.

Jak widać paleta oferowanych przez program komend pozwala na niemalże całkowitą kontrolę nad naszym urządzeniem z poziomu interfejsu znanego nam już komunikatora internetowego. Stopień zaawansowania jaki osiąga aplikacja zarówno w kwestii konfiguracji jak i konieczności zapamiętywania  komend może zniechęcić sporą część użytkowników do jego używania, ale na pewno warto poświęcić mu chociaż trochę uwagi.

Wifi Keyboard

Wiele jest sytuacji, w których zmęczyliśmy się dyktowaniem wiadomości, pisaniem dokumentów w brajlu i trafianiem klawiszy na klawiaturze dotykowej. Czasem chcielibyśmy po prostu ponaciskać jakieś fizyczne klawisze, a najlepiej te od klawiatury komputera i w ten sposób wprowadzić tekst do telefonu. Naprzeciw takim oczekiwaniom wychodzi Wifi Keyboard. Ta mała, darmowa aplikacja robi dokładnie to co sugeruje jej nazwa – jest symulatorem klawiatury bezprzewodowo podłączonej do naszego urządzenia mobilnego przez Bluetooth i pozwala na sterowanie oraz wpisywanie tekstu z poziomu przeglądarki internetowej komputera, ustawiając na naszym telefonie mały serwer http, czyli stronę internetową.

Po otwarciu aplikacji od razu możemy się zorientować, że nie oferuje ona wiele jeśli chodzi o własny interfejs. Jedyne co zawiera to instrukcja konfiguracji klawiatury. Dowiemy się tu w jaki sposób klawiaturę można aktywować, jakie są możliwe do użycia adresy IP naszego urządzenia zarówno w standardzie IPV4 jak i iPV6 oraz w jaki sposób możemy podłączyć wirtualną klawiaturę poprzez kabel USB (w trybie debugowania wysłać komendę za pomocą programu ADB: "adb forward TCP:7777 TCP:7777, a następnie, w pasku adresu przeglądarki wpisać "Localhost:7777"). Aby uzyskać dostęp do klawiatury, otwieramy przeglądarkę internetową i w pasku adresu wpisujemy adres podany przez aplikację. Najczęściej używanym adresem jest adres IPV4, czyli ten, który zaczyna się od http://192. Należy także pamiętać, że aplikacja nie podłącza się na domyślnym porcie, więc zgodnie z instrukcjami w niej zawartymi, adres zakańczamy wpisując dwukropek oraz numer portu 7777. Zakładając, że aplikacja odpowie, ukaże się mała strona internetowa pozwalająca na korzystanie z klawiatury. Patrząc od góry możemy znaleźć wybór trybu klawiatury pomiędzy tradycyjną międzynarodową oraz specjalną dla graczy, listę klawiszy specjalnych symulujących te znane z Androida, pole edycji służące do sterowania i pisania oraz informacje o autorze i link do kodu źródłowego aplikacji.

Klawisze specjalne to:

- shift – shift

- alt – alt

- strzałki – domyślne akcje strzałek w Androidzie

- insert lub F1 – naciśnięcie środka joysticka: najczęściej dokonywanie wyboru

- F2 – menu

F3 – Wyszukiwanie

Escape lub F5- powrót

F9 i F10 – regulacja głośności

F4 – przełączanie w tryb edycji lokalnej z możliwością przesłania gotowego tekstu do telefonu.

Po wejściu w pole edycji dostępne na stronie możemy wciskać niemalże dowolne skróty klawiszowe oferowane przez system Android oraz nasze aplikacje. Przechwytywanie naciśnięć klawiszy zostało dopracowane do tego stopnia, że nawet skrót alt+F4 nie zamyka okna przeglądarki. Z tego co udało mi się sprawdzić, niestety nie działają skróty klawiszowe symulujące gesty Talkbacka, wprowadzone w wersji 3.52 screenreadera. Możliwe jest natomiast wklejanie tekstu ze schowka komputera na telefon.

Aplikacja może zdobyć serca wielu niewidomych użytkowników Androida z uwagi na swoją prostotę i uniwersalność jako że nie wymaga instalacji dodatkowego oprogramowania, a przez to działa na innych systemach operacyjnych takich jak Mac OSX czy Linux. Być może to właśnie takie aplikacje budują przyszłość oprogramowania.

Mobizen

Mobizen to kolejna aplikacja webowa, która pozwala na zarządzanie tym co mamy w telefonie. Możemy więc przeglądać, pobierać, przesyłać oraz usuwać pliki znajdujące się na naszym telefonie, przeglądać zgromadzoną na nim bibliotekę muzyczną, zdjęcia oraz filmy i uzyskać dostęp do spisu połączeń oraz kontaktów. Aby rozwiązanie to działało poprawnie, musimy pobrać aplikację Mobizen ze sklepu Play, a następnie utworzyć w niej swoje osobiste konto. Po wykonaniu tych czynności możemy przejść na stronę www.mobizen.com i zalogować się na nowoutworzone konto. Gdy zrobimy to po raz pierwszy, musimy zautoryzować nasz komputer w telefonie poprzez przepisanie kodu weryfikacyjnego. Na szczęście czynność tą musimy wykonać tylko jeden raz chyba, że zdecydujemy się na każdorazową weryfikację naszej tożsamości w ten sposób. Po pomyślnym zalogowaniu, ukaże się strona, z poziomu której możemy zarządzać swoim telefonem. Oprócz typowego zarządzania opisanego powyżej, możemy zażądać nagrania tego co aktualnie dzieje się na ekranie, wykonania zdjęcia czy transmisji na żywo z ekranu telefonu. Możemy także spowodować naciśnięcie jednego z fizycznych przycisków naszego telefonu takich jak klawisze głośności, przycisk Power, czy Menu. Pod spodem znajdują się zakładki pozwalające na zarządzanie zdjęciami, filmami, muzyką, plikami, spisem połączeń i kontaktami. Kliknięcie w odpowiedni link rozwija zakładkę. W poszczególne elementy zakładki najlepiej jest klikać sprowadzając kursor wirtualny do aktualnie podświetlonego elementu i klikając na niego lewym przyciskiem myszy.

Zakładka zdjęcia pozwala na przeglądanie albumów oraz zdjęć, usuwanie, przesyłanie i ładowanie nowych zdjęć. Podobne operacje możemy wykonywać na nagranych filmach. Muzykę, oprócz zarządzania nią, możemy przeglądać według wykonawców, albumów i utworów, zaś pliki, według folderów. Z poziomu spisu połączeń możemy zainicjować rozmowę z jednym z numerów pogrupowanych według tego czy połączenie jest odebrane, wykonane bądź nieodebrane. Kontakty możemy przeglądać według grup oraz edytować bezpośrednio z poziomu  listy. Otwieranie stron internetowych podanych w informacjach o kontakcie oraz dzwonienie pod zapisany numer jest także możliwe. Jeżeli mamy pokaźną listę kontaktów, jej wczytywanie może trochę zająć. O postępie we wczytywaniu informuje nas komunikat u góry strony. W wykonaniu wszelkich operacji pomogą nam umieszczone na stronie przyciski. Aby wykonać jedną z możliwych akcji, należy najpierw nacisnąć żądany przycisk, a następnie dwukrotnym kliknięciem wskazać element, którego wybrana akcja ma dotyczyć np. kontakt lub plik, który chcemy usunąć. Aby przejść z jednej zakładki do drugiej, należy wrócić o stronę wyżej za pomocą polecenia "Wstecz",  a dopiero potem rozwinąć nową zakładkę. Strona posiada także sekcję ustawień gdzie możemy włączyć tryb oszczędzania energii, ukryć przyciski sprzętowe telefonu wyświetlane u góry, wyczyścić powiadomienia oraz zmienić ustawienia motywu strony. Sama aplikacja zainstalowana na telefonie oferuje,, możliwość inicjacji nagrywania ekranu, wprowadzenie kodu weryfikacyjnego wyświetlonego przez stronę w celu powiązania telefonu z komputerem (przycisk "Two-way verification") oraz modyfikację ustawień dotyczących nagrywania ekranu, naszego konta Mobizen oraz listy autoryzowanych komputerów. Mobizen posiada także dedykowane programy dla systemów Windows i OSX, jednak wersja Windows okazała się być niedostępną, przynajmniej z NVDA.

Mobizen to dobre rozwiązanie dla osób, które z każdego miejsca chciałyby zarządzać plikami i kontaktami swojego urządzenia bez uczenia się długich i skomplikowanych komend oraz poprawnego wpisywania ich parametrów. Mobizen eliminuje także konieczność skomplikowanej konfiguracji jakiej wymaga rozwiązanie GTalk SMS. Mobizen jest usługą dość nową, można się więc spodziewać, że z czasem jego funkcjonalność poszerzy się o nowe możliwości kontroli telefonu z przeglądarki.

Serwery FTP

Istnieje wiele serwisów oferujących dostęp do naszych plików w formie chmury, zarówno takie, które pozwalają na pobieranie plików, które są nam potrzebne na żądanie jak i automatycznie synchronizujących wskazane foldery z pamięcią naszego urządzenia. Co w przypadku, gdy chcemy po prostu przetransferować kilka plików i folderów bez konieczności utrzymywania dwóch identycznych kopii tych samych danych? Z pomocą przychodzą nam serwery FTP – sposób stary i sprawdzony, dostępny także pod systemem Android. Każde urządzenie z systemem Android można zmienić w mały serwer FTP dający dostęp do wszystkich  plików na nim umieszczonych. O znalezienie działającego serwera nietrudno. Trend ten jest już rozpowszechniony do tego stopnia, że serwer taki znajdziemy w wielu menedżerach plików lub aplikacjach do zdalnej obsługi telefonu. Z tego powodu postanowiłem nie opisywać jednej konkretnej aplikacji.  Dedykowanych serwerów FTP w sklepie Play można znaleźć mnóstwo i z reguły są to aplikacje w pełni dostępne i o dość zbliżonym interfejsie. Oferują one konfigurację portu, na którym serwer ma nasłuchiwać przychodzących połączeń (z uwagi na ograniczenia Androida nie może to być domyślny 21), ustalenie zasad logowania, a nawet tworzenie grup użytkowników z różnymi prawami dostępu. Gdy już przeprowadzimy wstępną konfigurację możemy śmiało użyć naszego ulubionego klienta FTP takiego jak Filezilla, ulubiona przeglądarka internetowa czy nawet eksplorator Windows. Wszystko działa sprawnie przy założeniu, że mówimy o plikach i folderach umieszczonych w pamięci wewnętrznej urządzenia. Sytuacja ma się trochę gorzej w przypadku kart pamięci. W wersji Androida 4.4 Kitkat, Google postanowiło ograniczyć dostęp aplikacji trzecich do zawartości karty do tego stopnia, że aplikacje te mogą dodawać i modyfikować pliki jedynie w obrębie folderu, które same stworzyły. Sytuacja rozluźniła się trochę w Lollipopie, gdzie aplikacje mogą prosić o przyznanie dostępu do dowolnego folderu. Rozwiązanie jakim są serwery FTP jest idealne do stworzenia przenośnego, sieciowego pendrive'a lub gdy zgubimy gdzieś kabel USB, a koniecznie chcemy przesłać plik. Niechęć do wyciągania dodatkowych kabli jest także dobrą motywacją do zastosowania tej metody.

Przedstawione w artykule sposoby są tymi najbardziej dostępnymi dla programów odczytu ekranu. Jest na rynku sporo rozwiązań bardziej ujednoliconych i zaawansowanych, natomiast ich strony internetowe, nawet jeżeli możemy za ich pomocą wykonać wiele operacji, są nieintuicyjne i mogą z łatwością odstraszyć mniej zaawansowanych użytkowników. Mimo to, co starałem się udowodnić pisząc niniejszy tekst, istnieje nadal sporo rozwiązań, z których można bezproblemowo korzystać i osiągnąć zbliżony efekt. Najbardziej rozbudowanym z opisanych narzędzi jest GTalk SMS, choć przerażać może stopień skomplikowania jego konfiguracji i użytkowania. W tym celu istnieją także mniej zaawansowane i mniej skomplikowane alternatywy. Twórcy popularnych rozwiązań o sporych możliwościach i mało przyjaznym dla osób z dysfunkcją wzroku interfejsie, unikają tematu wprowadzania usprawnień dostępności tłumacząc się stopniem trudności takiego wyzwania i przekładając sprawę na czas bliżej nieokreślony. Możemy mieć nadzieję, że w najbliższej przyszłości uda nam się doczekać takich usprawnień lub zupełnie nowych serwisów oferujących bardziej zaawansowane możliwości kontroli zdalnej urządzeń z Androidem bez uszczerbku na dostępności.

Paweł Masarczyk

 

Projekt współfinansowany ze środków Państwowego Funduszu Rehabilitacji Osób Niepełnosprawnych oraz Gminy Miejskiej Kraków