Skocz do zawartości
verona94

Sterowanie aplikacją poprzez HTTP (ekran on/off)

    Rekomendowane odpowiedzi

    Na co dzień piszę w PHP, wcześniej w Delphi/C# i nie miałem styczności z urządzeniami mobilnymi. Muszę jednak szybko napisać jedną prostą aplikację bo po prostu nie mogę takiej znaleźć gotowej.

    Chcę móc włączać / wyłączać ekran (czyli po prostu blokować i odblokowywać urządzenie) zdalnie, poprzez zwykłe HTTP GET. Nie potrzebuję żadnego interfejsu w przeglądarce bo takie GET mogę sobie napisać prosty program na PC lub po prostu podpiąć pod skrót klawiszowy + curl.exe. Wchodzę np. w http://iptabletu:port/screen i ekran się wyłącza, wchodzę znowu i się włącza - niby proste a jednak nie... 

    Tablet nie ma żadnego zabezpieczenie typu swipe, pin itp) więc po prostu chcę uzyskać to samo co klikając ręcznie w przycisk power.

     

    Nie mam jednak pojęcia jak to rozwiązać od czego zacząć. Wiem że musiałbym zainstalować pewnie Android Studio, do sterowania ekranem użyć jakieś funkcji której dostarcza producent - tutaj nie problem, ale co z tym sterowaniem? Gdy szukam w google to krew mnie zalewa bo wyszukuje mi wszędzie wątki gdzie to aplikacja ma robić zapytania HTTP, a ja chcę na odwrót - by to aplikacja mogła odbierać.

    Wpadłem też na pomysł by zamiast pisać aplikację to uruchomić serwer WWW np. apache z PHP do czego są gotowe aplikacje. Nie wiem jednak co dalej, czy przez takie PHP mogę w jakikolwiek sposób sterować urządzeniem?

    Jak to rozwiązać najlepiej? A może jednak jest jakaś aplikacja która oferuje taką funkcję?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Coderoid

    Jeśli chodzi o komunikację serwera z aplikacją to:

    HTTP nie wiele tutaj pomoże bo musiałaby aplikacja odpytywać w interwale serwer.

    Pushe - to rozwiązanie pozwala aplikacji na wymianę informacji z serwerem za pomocą TCP/IP. Krótko mówiąc aplikacja może wysłać info do serwera jak i serwer może powiedzieć coś aplikacji bez konieczności odpytania serwera cyklicznie. Komunikacja przebiega backed <=> apka. Takie rozwiązania są już gotowe i posiada jest m.in Firebase

    Websocket - to jest rozwiązanie z grubsza podobne do push, ale tutaj musiałbyś sam sobie zaimplementować serwer i clienta na obsługę zdarzeń. Komunikacja przebiega backed <=> apka

    SSE - Server side events. To typ komunikacji gdzie aplikacja mówi serwerowi "Słucham Cię", a serwer do niej "mówi". Nie ma natomiast możliwości komunikacji w dwie strony. Jest tylko backend -> apka

     

    Natomiast jeśli chodzi o samo odblokowanie urządzenia. Jest opcja na wybudzenie urządzania, czyli zapalenie ekeranu (wake lock). Natomiast jeśli chodzi o odblokowanie ekranu, to po bardzo małym rozeznaniu tematu w google, nie wróżę nic dobrego. Na dodatek każdy producent moze to sobie inaczej rozstrzygnąć i api wcale nie musi pomóc. Tutaj przyda się trochę druciarstwa i szczęścia. Może ten link będzie pomocny: https://stackoverflow.com/questions/14352648/how-to-lock-unlock-screen-programmatically?answertab=votes#tab-top

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Dzięki za wyczerpującą odpowiedź. Znalazłem w sieci gotowy przykład serwera z socketami, skompilowałem no i super, myślałem że teraz z górki. Problemem okazało się jednak wybudzanie i usypianie urządzenia.. Nie sądziłem że tyle z tym grzebania a rozwiązania z sieci okazują się nieaktualne. Traciłem tylko czas i nerwy. Wpadłem jednak na inne rozwiązanie.

    Przez adb włączyłem w urządzeniu adb przez wifi. Wystarczy komenda przez cmd  adb.exe shell input keyevent 26  co symuluje wciśnięcie przycisku i mam efekt o który mi chodziło, bez żadnej aplikacji ;)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x