Samo oglądanie zdalnego ekranu to jedno. Możliwość wykonania na urządzeniu dotknięcia, gestu czy wpisania tekstu oznacza już znacznie większy poziom dostępu. W przypadku Androida taki scenariusz wymaga użycia systemowej usługi Accessibility i właśnie dlatego nie chcieliśmy traktować tego uprawnienia jako czegoś, co użytkownik powinien włączyć bez wyjaśnienia.

W MyDeskViewer proces został rozdzielony na kilka kroków. Najpierw aplikacja wyjaśnia, do czego uprawnienie jest potrzebne. Dopiero potem użytkownik może przejść do systemowych ustawień Androida i samodzielnie włączyć odpowiednią usługę. System pozostaje ostatecznym miejscem, w którym zgoda jest udzielana albo cofana.

Podczas prac sporo czasu zajęło zachowanie aplikacji po powrocie z ustawień. Usługa może zostać włączona, wyłączona albo pozostawiona bez zmian. Android może też odtworzyć ekran aplikacji w innym stanie niż przed przejściem do ustawień. Z punktu widzenia użytkownika nie powinno to jednak prowadzić do chaosu - przycisk ma pokazywać prawdziwy stan, a aplikacja powinna jasno informować, czy zdalne sterowanie jest dostępne.

Równie ważne było rozdzielenie zgody na sterowanie od samego połączenia. To, że urządzenie jest widoczne na koncie, nie powinno automatycznie oznaczać możliwości wykonywania na nim akcji. Dodatkowe uprawnienie systemowe jest tutaj świadomą granicą postawioną przez Androida i chcemy tę granicę respektować.

Takie elementy nie zawsze wyglądają efektownie na liście nowych funkcji, ale są kluczowe dla produktu zdalnego dostępu. Użytkownik musi wiedzieć, kiedy zdalne sterowanie jest aktywne, do czego służy i gdzie może je wyłączyć.

W kolejnych iteracjach poprawialiśmy więc nie tylko samo działanie sterowania, lecz przede wszystkim komunikację, obsługę stanów i przejścia pomiędzy aplikacją a ustawieniami systemu.