Samouczek dotyczący włączania trybu immersyjnego w całym systemie (lub w poszczególnych aplikacjach) bez konieczności dostępu do konta root. Działa na wszystkich urządzeniach z Androidem 4.4+.
Ponieważ ekrany telefonów stają się coraz większe, czasami chcemy ukryć pasek stanu i pasek nawigacji, aby móc przeglądać zawartość na całym wyraźnym, pięknym ekranie HD.
Począwszy od Androida 4.4, aplikacje mogły być wdrażane Tryb immersyjny aby naprawdę zapewnić użytkownikowi końcowemu wrażenia pełnoekranowe. Niestety Google i producenci OEM nigdy nie udostępnili użytkownikom możliwości ręcznego kontrolowania, kiedy chcą włączyć tryb immersyjny. Aplikacja innej firmy o nazwie Pełnoekranowy tryb immersyjny GMD zapewnia obejście tego problemu już od kilku lat, ale największym problemem związanym z używaniem tej aplikacji jest to, że psuje ona klawiaturę programową.
Użytkownicy krążyli wokół polecenia ADB, które uruchamia ogólnosystemowy tryb immersyjny, ale przez lata uważano, że użycie tego polecenia po odłączeniu od terminala ADB będzie wymagało rootowania dostęp. Jednak pod koniec ubiegłego roku użytkownicy odkryli, że niektóre polecenia ADB w rzeczywistości mogą być uruchamiane na urządzeniu
Przełącz tryb immersyjny bez rootowania
Jak widać na powyższym filmie, stworzyłem kafelek Nougat, który przełącza tryb immersyjny po naciśnięciu. To jest na moim nierootowanym Huawei Mate 9, ale powinno działać prawie każde urządzenie z Androidem 4.4 lub nowszym. Aby to zadziałało, potrzebujesz tylko dwóch aplikacji: Zadanie I Beta narzędzi AutoTools. Będziesz także musiał zainstalować Automatyczne powiadomienie jeśli chcesz zrobić z tego płytkę Nugat, ale nie jest to wymagane.
Po zainstalowaniu obu aplikacji musisz przyznać ZAPISZ_SECURE_SETTINGS pozwolenie na AutoTools, aby móc przełączać tryb immersyjny (wśród innych niesamowitych ustawień, które omówimy później). Dzieje się tak, ponieważ polecenie trybu immersyjnego jest zdefiniowane w pliku Ustawienia. Światowy class, chociaż dokładna składnia polecenia jest ukryta w AOSP. Najpierw omówimy, jak udzielić niezbędnych uprawnień AutoTools, a następnie jak używać polecenia w Taskerze.
W systemie zarządzania uprawnieniami systemu Android aplikacje definiują uprawnienia, które chcą otrzymać, w pliku manifestu. Użytkownicy mogą następnie przyznawać lub odmawiać uprawnień podczas instalacji (w wersji wcześniejszej niż Marshmallow) lub na żądanie (Marshmallow+). Istnieją jednak pewne uprawnienia, których aplikacjom nie można udzielić, nawet jeśli zażądają tego w Manifeście, np ZAPISZ_SECURE_SETTINGS. Dzieje się tak dlatego, że przyznanie dowolnej aplikacji tak potężnego uprawnienia zapewniłoby tej aplikacji ogromną kontrolę nad Twoim urządzeniem.
Istnieje jednak jedno obejście, którego możemy użyć, aby przyznać uprawnienia WRITE_SECURE_SETTINGS dowolnej aplikacji. Używając ADB menedżer pakietów (po południu) narzędzia, możemy przyznać dowolne uprawnienia dowolnej aplikacji (pod warunkiem, że aplikacja poprosi o to pozwolenie w pliku manifestu).
Pierwszą rzeczą, którą musisz zrobić, to zainstaluj plik binarny ADB na komputer, a następnie odpowiedni sterownik dla Twojego urządzenia. Następnie włącz debugowanie USB w Opcjach programisty (przejdź do Ustawienia -> Informacje o telefonie i dotknij Numer kompilacji 7 razy, jeśli jeszcze tego nie zrobiłeś) i podłącz telefon do komputera. Na koniec wyślij następujące polecenie po otwarciu terminala:
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
Teraz AutoTools będzie mogło zmienić dowolne ustawienia globalne, bezpieczne lub systemowe na Twoim urządzeniu. Istnieją różne sposoby zabawy tymi ustawieniami, a lista dostępnych ustawień znajduje się w każda kategoria całkowicie zależy od urządzenia i wersji oprogramowania, ale ta dyskusja jest na inny temat czas. W każdym razie pokażemy Ci, jak używać AutoTools do przełączania trybu immersyjnego.
Używanie Taskera do przełączania trybu immersyjnego za pomocą kafelka Nougat
Przełączanie trybu immersyjnego za pomocą kafelka oczywiście wymaga systemu Android Nougat, więc jeśli nie masz Nougata, pomiń tę sekcję, aby dowiedzieć się, jak przełączać go dla poszczególnych aplikacji. Jeśli jeszcze tego nie zrobiłeś, pobierz AutoNotification ze sklepu Google Play i przyznaj mu dostęp do powiadomień. Ta wtyczka Tasker będzie tym, czego użyjemy do stworzenia własnego niestandardowego kafelka powiadomień.
Oto opis profilu dla tych z Was, którzy znają Taskera. Jeśli nie jesteś zaznajomiony z Taskerem, przeczytaj instrukcje krok po kroku.
Przełącznik trybu immersyjnego kafelka Nugat
Profile: Toggle Immersive Mode (30)
Event: AutoNotification [ Configuration: Event Behaviour
Filter: immersivemode ]
Enter: Immersive Mode (33)
A1: AutoNotification Tiles [ Configuration: Tile: 1
Command: immersivemode
Label: Immersive mode
Icon: /storage/emulated/0/Tasker/immersive.png
State: 999 Timeout (Seconds):60 ]
A2: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]
Czytaj więcej
Otwórz Taskera i naciśnij + przycisk w prawym dolnym rogu. Stworzyć Wydarzenie kontekst i wybierz Wtyczka --> Autopowiadomienie. Naciśnij ikonę ołówka, aby otworzyć stronę konfiguracji automatycznego powiadamiania. Pod Filtr poleceń Wchodzić tryb immersyjny. To jest dokładne polecenie, które zostanie wysłane, gdy dotkniemy kafelka Nougat.
Teraz utwórz nowe zadanie (o dowolnej nazwie) dołączone do tego profilu i dla pierwszej akcji przejdź do Wtyczka --> Automatyczne powiadamianie --> Kafelki. Aby uzyskać numer płytki, wybierz pierwszą płytkę. Dla Komenda Wchodzić tryb immersyjny dokładnie tak jak napisano. The etykieta będzie wyświetlane pod kafelkiem, więc nadaj mu nazwę „Tryb immersyjny”. Dla Ikona, zapisz ikonę, którą załączyłem na początku tej sekcji, w pamięci wewnętrznej i użyj jej. Wreszcie dla Państwo wybierać Przełącz Aktywny/Nieaktywny.
Gdy już skończysz, uruchom zadanie raz (naciśnij przycisk odtwarzania w lewym dolnym rogu ekranu tworzenia zadania), aby kafelek został zapełniony. Teraz, gdy rozwiniesz listę dostępnych kafelków powiadomień, powinieneś zobaczyć nowy przełącznik trybu immersyjnego.
Używanie Taskera do przełączania trybu immersyjnego dla poszczególnych aplikacji
Przełączanie trybu immersyjnego dla poszczególnych aplikacji jest dość proste, wystarczy utworzyć kontekst aplikacji w Tasker, który uruchomi się po uruchomieniu lub zamknięciu aplikacji, a kiedy to nastąpi, tryb immersyjny przełączony. Aby Tasker mógł monitorować aplikacje, musisz je włączyć Usługa dostępności.
Oto opis profilu dla tych z Was, którzy znają Taskera. Jeśli nie jesteś zaznajomiony z Taskerem, przeczytaj instrukcje krok po kroku.
Tryb immersyjny dla poszczególnych aplikacji
Profile: Per-App Immersive Mode (192)
Application: Chrome or XDA Labs
Enter: Anon (199)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]
Exit: Anon (204)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]
Czytaj więcej
Najpierw będziesz chciał otworzyć Taskera, ponieważ utworzymy profil, aby uruchomić tryb immersyjny, gdy otwarte będą określone aplikacje. Otwórz Taskera i naciśnij + w prawym dolnym rogu, aby utworzyć nowy profil. Jako typ kontekstu wybierz Aplikacja i wybierz wszystkie aplikacje, w których chcesz, aby tryb immersyjny był aktywny.
Kiedy skończysz, naciśnij Wstecz, a Tasker poprosi Cię o utworzenie zadania. Nie ma potrzeby nazywania zadania, wystarczy nacisnąć znacznik wyboru, aby rozpocząć tworzenie zadania. Po wejściu na ekran tworzenia zadania wystarczy dodać tylko jedną akcję. wciśnij + przycisk na dole i przejdź do Wtyczka --> AutoTools --> Bezpieczne ustawienie. Naciśnij ikonę ołówka, aby skonfigurować AutoTools. Tutaj, idź do Wyświetlacz następnie dotknij Tryb immersyjny i wybierz „Przełącznik."
Jest jeszcze jedna rzecz, którą musimy zrobić, a mianowicie wyłączenie trybu immersyjnego po wyjściu z aplikacji. Wróć do głównego ekranu Taskera i długie naciśnięcie na zadaniu, które właśnie utworzyłeś, abyś mógł utworzyć Wyjdź z zadania. Tworząc zadanie wyjściowe, po prostu dodaj tę samą akcję, którą dodałeś w pierwszym zadaniu — spowoduje to przełączenie trybu immersyjnego.
Dostosowywanie trybu immersyjnego
Jak wspomniałem wcześniej, dokładne polecenia dostępne do wymuszenia trybu immersyjnego mogą być zebrane z AOSP. Możesz ustawić tryb immersyjny tak, aby ukrywał tylko pasek powiadomień lub tylko pasek nawigacji, wydając jedno z następujących poleceń:
settings put global policy_control immersive.status=*
settings put global policy_control immersive.navigation=*
Oczywiście AutoTools w rzeczywistości nie pozwala na bezpośrednie wysyłanie takich poleceń powłoki, ale zamiast tego będziesz wysyłać polecenia za pomocą jego interfejsu. Po prostu wybierz „Ustawienia niestandardowe” w bezpiecznych ustawieniach AutoTools, ustaw typ ustawienia na „globalny”, ustaw „Typ wejścia” na „String” i jako Nazwę należy wpisać „policy_control immersive.status=*” lub „policy_control immersive.navigation=*". Możesz użyć tego polecenia zamiast tego, którego użyliśmy do kafelka Nougat lub kontroli poszczególnych aplikacji, jeśli wolisz tryb immersyjny ukrywający jeden z pasków stanu lub paska nawigacji.
Pobierz i zaimportuj do Taskera
Jak zawsze udostępniamy plik XML skryptu, który można pobrać i zaimportować. Po prostu pobierz plik, korzystając z łącza poniżej i zapisz go w dowolnym miejscu w pamięci wewnętrznej. Otwórz Taskera i wyłącz tryb dla początkujących w Preferencjach. Następnie wróć do ekranu głównego i naciśnij długo kartę „Profil” u góry. Powinieneś zobaczyć wyskakujące okienko z jedną z opcji „Importuj”. Stuknij w to i przejdź do miejsca, w którym zapisałeś plik .prf.xml i wybierz ten plik do zaimportowania.
Jeśli zdecydujesz się zaimportować kafelki powiadomień, pamiętaj o zapisaniu ikony trybu immersyjnego w formacie immersive.png i zapisaniu jej w /sdcard/Tasker. Jeśli zdecydujesz się zaimportować profil Per-App, pamiętaj, aby wejść i dostosować aplikacje, w których będzie on uruchamiany, ponieważ moja próbka jest ustawiona tak, aby uruchamiała się tylko podczas korzystania z Chrome lub XDA Labs.
Pobierz przełącznik trybu immersyjnego kafelka powiadomień
Pobierz profil przełączania trybu immersyjnego dla poszczególnych aplikacji
Mamy nadzieję, że ta wskazówka będzie dla Ciebie przydatna. Daj nam znać w komentarzach poniżej, czy to działa dla Ciebie!