Łatwy sposób na ukrycie paska systemowego w Android ICS


Przekażę moje tablety ICS użytkownikom do wypełnienia ankiety, więc chciałbym, aby użytkownik pracował tylko z moją aplikacją. Nie powinni mieć możliwości przełączania się na ekran główny, naciskania przycisków wstecz itp., Więc chciałbym całkowicie ukryć pasek systemowy.
Mój tablet jest zrootowany i wiem o tym

taki
https://play.google.com/store/ ... tbyJd
Załącznik
może mi pomóc, ale nie potrzebuję wszystkich dodatkowych funkcji tej aplikacji.
znalazłem

ten samouczek
http://www.redmondpie.com/how- ... rial/
co może mi pomóc, ale gdybym mógł dodać kod, aby stworzyć własny, byłoby wspaniale.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Po wielu poszukiwaniach w Internecie udało mi się sprawić, że pasek systemowy ukrył się i pojawił się ponownie w urządzeniu 4.2 z:
ukryć:
Runtime.getRuntime().exec("service call activity 42 s16 com.android.systemui");

Lub użyj 79 zamiast 42 dla API mniejszego niż 14. Konieczne może być również włączenie uprawnienia SET_DEBUG_APP, w którym to przypadku będziesz musiał podpisać aplikację kluczem systemowym lub zainstalować ją w katalogu/system/app/.
pokazać:
Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService");

Ewentualnie niektórzy używali opcji -a (zamiast -n), chociaż powodowało to zgłoszenie błędu na moim urządzeniu:
Błąd nie znaleziony; usługa nie działa.
W systemie Android 4.4 dostępna jest nowa funkcja zwana trybem immersyjnym, która ukrywa zarówno paski systemowe, jak i paski stanu. System interfejsu użytkownika jest przełączany przez użytkownika za pomocą przesunięcia krawędzi u góry lub u dołu ekranu. Aby uzyskać więcej informacji, zobacz:
http://developer.android.com/l ... ility(int
http://developer.android.com/r ... ility(int)
)
Korzystanie z nowego trybu IMMERSIVE w Android KitKat
https://coderoad.ru/21135445/
Na przykład:
getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

HideBar ma tryb kiosku specjalnie dla tego przypadku użycia.
Bezpłatne pobieranie dostępne pod adresem

http://ppareit.github.com/HideBar/
http://ppareit.github.com/HideBar/
.
Możesz go również znaleźć na rynku pod adresem

https://play.google.com/store/apps/details? id=be.ppareit.hidebar
https://play.google.com/store/ ... debar
.
Jeśli chcesz umieścić go we własnej aplikacji testowej/ankietowej, zawsze możesz skontaktować się z programistą (zobacz linki do wiadomości e-mail). Kod można wyjaśnić lub podać
zamiar
do ukrycia.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

sprawdź ten link: (Wymaga roota)

http://android.serverbox.ch/? p=306
http://android.serverbox.ch/?p=306
podobne pytanie zostało również zamieszczone tutaj:

Czy istnieje sposób na ukrycie paska systemowego w systemie Android 3.0? To urządzenie wewnętrzne i steruję nawigacją
https://coderoad.ru/5109988/
lub spróbuj HideBar

http://ppareit.github.com/HideBar
http://ppareit.github.com/HideBar/
/
W rzeczywistości możesz po prostu przełączyć pasek systemowy w tryb „wyłączonego światła”, przyciski i powiadomienia paska systemowego będą przyciemnione.
View v = findViewById(R.id.view_id);
v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Chcę dodać trochę informacji do istniejących odpowiedzi, mając nadzieję, że będą one pomocne dla kogoś.
Aby uzyskać prawdziwe działanie na pełnym ekranie

moje niedrogie chińskie tabletki

Muszę edytować plik znajdujący się w
system/build.prop

zamienić tekst
ro.property.tabletUI=true

od
#ro.property.tabletUI=true

(Komentuję tę linię). Potem mogę uzyskać pełny ekran przy użyciu
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"

za każdą aktywność w minfest.xml
To rozwiązanie jest dobre tylko wtedy, gdy sprzedajesz tablety z własną aplikacją i

potrzebują uprawnień roota

aby edytować
system/build.prop
.

Nie jest to więc rozwiązanie dla każdego

więc proszę, nie umniejszajcie tego małego wkładu.

EDIT:

Zauważyłem, że moje tablety mają przyciski sprzętowe (Home, Menu i Back) na ramkach. Więc Android pozwala mi ukryć pasek systemowy. ja

bezskutecznie

próbował współpracować z innymi tabletami, które nie miały przycisków sprzętowych.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Google zamierza używać Androida tylko dla konsumentów. Ściślej zintegrowali system paska interfejsu użytkownika z systemem Android ICS (4.0), aby zapobiec zrootowaniu urządzenia i zniszczeniu paska w ten sposób. Podczas próby usunięcia paska procesu system uniemożliwia pełne załadowanie systemu operacyjnego.
Jeśli chcesz ograniczyć dostęp użytkownika do ekranu głównego, masz pecha z Androidem ICS. Sugerowałbym znalezienie producenta tabletu, który wstępnie załaduje urządzenie z Androidem 2.3. Albo to, albo użyj zrootowanego urządzenia z Androidem 3.x.
Jeśli zamierzasz używać Androida do kiosku lub zablokowanych urządzeń, lepiej wybrać system operacyjny, który jest nieco bardziej otwarty.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Znalazłem rozwiązanie, które w moim przypadku działa jak zaklęcie, ukrywając pasek menu nawet na urządzeniu NON-ROOT:
ustawienie tej flagi
layoutparams.flags = 0x80000000 | layoutparams.flags;

tak, że opcje układu okien po prostu załatwią sprawę!
Oto pełny fragment, którego użyłem:
Window window = getWindow();
android.view.WindowManager.LayoutParams layoutparams = window.getAttributes();
layoutparams.flags = 0x80000000 | layoutparams.flags;
window.setAttributes(layoutparams);

w mojej aktywności onCreate.
Aby się tego dowiedzieć, odwróciłem niesystemowy apk, który znalazłem, może jakoś to zrobić.
Według oficjalnej dokumentacji:
http:// developer.android.com/link/android/view/WindowManager.LayoutParams.html # FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
http://developer.android.com/r ... OUNDS
że „0x80000000” to FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS, wprowadzona jako stała systemowa na poziomie Api 21 i zasadniczo wskazuje, że „to okno jest odpowiedzialne za rysowanie tła dla pasków systemowych”.
Przetestowałem to tylko na parze Moverio BT-200 z systemem Android ICS 4.0.3, ponieważ jest to urządzenie, nad którym obecnie pracuję, a także dlatego, że nie mam teraz innego urządzenia działającego na poziomie Api do 19 żeby to sprawdzić.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Istnieje obejście umożliwiające wyłączenie paska menu (nie ukrywanie) we wszystkich większości tabletów bez rootowania. Ale to trochę trudne, ale działa czysto. Kilka znanych aplikacji na rynku korzysta obecnie z tej strategii, aby uzyskać tę funkcję wyłączania paska menu w swoich aplikacjach.
  • Przyznaj uprawnienia administratora (aktywacja wymaga jednorazowego udziału użytkownika).
  • Ustaw hasło & amp; zablokuj urządzenie za pomocą interfejsu API profilu administratora urządzenia.
  • Następnie załaduj wszystkie interfejsy użytkownika, które znajdowały się na natywnym ekranie blokady. (Oczywiście spowoduje to wyświetlenie ekranu blokady w tle za każdym razem, gdy nastąpi przejście między działaniami. Ale jeśli logika jest dobrze zorganizowana, będzie płynniejsza i mniej widoczna dla użytkownika)
  • Jeśli to konieczne, włącz go ponownie, zresetuj hasło В "" Używając resetPassword ("", 0) Political Device Object Manager.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Aby uzupełnić odpowiedzi już udzielone i na wypadek, gdyby było to pomocne dla kogoś, kto potrzebuje podobnego zachowania, jest ten samouczek dla urządzeń z Androidem 4.0 i nowszym, który mówi, jak ukryć pasek nawigacji i pasek stanu (pojawią się ponownie, gdy na ekranie zostanie ponownie dotknięty):
https:/system-user interface/developer.android.com/provisioning// navigation.html
https://developer.android.com/ ... .html
Zdaję sobie sprawę, że nie jest to dokładnie to, czego szukasz, ale może być pomocne dla kogoś, kto zajmuje się tym problemem.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się