C'è un modo per hide la barra di sistema / di navigazione in Android ICS

Vorrei estendere la discussione sul nascondersi della barra di sistema / navigazione in fondo allo schermo su Android Ice Cream Sandwich (4.0 e versioni successive).

C'è già un thread ( C'è un modo per hide la barra di sistema in Android 3.0? È un dispositivo interno e sto gestendo la navigazione ) sul hide la barra sui dispositivi a nido d'ape. I miei clienti, tuttavia, utilizzeranno i più recenti dispositivi Ice Cream Sandwich e sono molto attenti a hide il bar nella parte inferiore dello schermo. La loro applicazione non è per uso regolare del consumatore e è molto importnte per loro di assumere l'integer schermo per fornire la loro esperienza. Quanto è ansible hide questa barra – o alless, ignorare il comportmento di tutti i pulsanti – senza radicare i dispositivi o riscrivere il firmware?

  • Inflated ImageView per mettere in GalleryView non è la giusta dimensione
  • Galleria con filter cartella
  • Come fare la barra di progresso personalizzato Circle in Android
  • Comprensione della densità dello schermo Samsung Galaxy Tab
  • Gradle - scarica le dependencies, blocca le versioni e aggiorna le dependencies manualmente
  • Perdere le immagini da NetworkImageView dopo l'elenco di scorrimento a discesa
  • Trasmissione Android ACTION_DATE_CHANGED
  • Come creare e leggere in modo programmato le configurazioni WEP / EAP WiFi in Android?
  • Come impostare correttamente l'orientamento della camera Android?
  • Come get il mio context di attività?
  • Utilizzando l'API di DATA di Youtube per recuperare i dettagli del video in applicazione Android in base alla parola chiave
  • Android: Navigatore-Cassetto di tutte le attività
  • 12 Solutions collect form web for “C'è un modo per hide la barra di sistema / di navigazione in Android ICS”

    Controlla SYSTEM_UI_FLAG_HIDE_NAVIGATION , questa bandiera nasconde la barra di navigazione finché l'utente non interagisce con il dispositivo. È stato introdotto in Android 4.0. Puoi abilitare questa bandiera come ad esempio:

     getWindow().getDecorView() .setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

    Notare che la navigazione non si spegnerà automaticamente, è necessario impostarla each volta che l'utente ha interagito con il dispositivo.

    In alternativa, è ansible rendere la navigazione less SYSTEM_UI_FLAG_LOW_PROFILE utilizzando SYSTEM_UI_FLAG_LOW_PROFILE , questo modifica i pulsanti in piccoli punti (ad esempio, come l'applicazione della camera) .

    su dispositivi rooted, uso il seguente command adb

     adb shell pm disable com.android.systemui 

    per hide in modo permanente la barra di navigazione. Per mostrarla di nuovo, eseguire

     adb shell pm enable com.android.systemui 

    finora sta funzionando bene per me

    L'utilizzo del codice riportto di seguito è un modo per farlo per hide la navigazione

     getWindow().getDecorView() .setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

    Ma il problema con quanto sopra è che diventa visibile non appena l'utente tocca lo schermo.

    In Android Kitkat c'è una funzionalità chiamata IMMERSIVE che nasconde la barra di notifica e la navigazione. Non viene visualizzato anche se l'utente interagisce con lo schermo. Tuttavia l'utente può renderlo visibile spostandolo dalla parte superiore dello schermo verso il basso. Di seguito è il codice per raggiungerlo

     //Initializew this in onCreate() View mDecorView = getWindow().getDecorView(); //Then call this function private void hideSystemUI() { mDecorView.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_LOW_PROFILE | View.SYSTEM_UI_FLAG_IMMERSIVE); } 

    Tuttavia nel mio caso non ho mai voluto che la barra di navigazione e di notifica sia visibile anche se l'utente passa dalla parte superiore dello schermo verso il basso. La ho provata e sono rioutput a farlo parzialmente. Quello che ho fatto è che ho implementato un CountDownTimer che chiamerebbe hideSystemUI() each secondo o giù di lì. So che non è il modo migliore per farlo. Ma non ho avuto alcuna altra soluzione per farlo.

    Se qualcuno ottiene qualcuno allora per favore fathemes sapere su come hide in modo permanente la barra di navigazione e di notifica 🙂 spero che questa risposta aiuta qualcuno in futuro 🙂

    Guarda questo video per comprendere meglio questa funzionalità.

    Aggiornamento – c'è un lavoro che può essere utilizzato per tali casi (impostare manualmente l'applicazione per il client). Infatti, la barra di navigazione non può essere rimossa nell'ambito specificato.

    Tuttavia, c'è una soluzione per hide la barra di navigazione se rooting il dispositivo è un'opzione per te. Ecco come:

    Dispositivo radice

    Installare ed eseguire Busybox

    Installare HideBar

    In HideBar esiste un'opzione da eseguire in modalità "Chiosco", in cui non è ansible riprodurre nuovamente la barra di navigazione. Inutile dire che bisogna davvero stare attenti a questo.

    Rischi coinvolti:

    • muratura del dispositivo

    • get l'installazione di BusyBox sbagliata, cosa che potrebbe rendere le cose un po 'complicate, anche se è molto improbabile che provocherà perdita di informazioni.

    • entrare in uno stallo where non puoi abbandonare la tua applicazione. Ad esempio, se 1 la tua interface grafica non fornisce un'opzione vicina, 2 l'applicazione si avvia automaticamente all'avvio, 3 HideBar non consente alcun modo di rieseguire la barra di navigazione e 4 HideBar distriggers la barra di navigazione all'avvio. questo può essere superato semplicemente arrestando / disinstallando la tua applicazione da adb.

    Ecco altre domande identiche:

    • La barra di navigazione di Android tablet non nasconderà

    • Come rimuovere le barre di sistema in Android, voglio dire, tutto

    • La barra di navigazione di Android tablet non nasconderà

    • C'è un modo per hide la barra di sistema / di navigazione in Android ICS

    • Nascondi barra del sistema Tablet

    • Real Fullscreen con Android 4 compresse

    • Facile modo per hide la barra di sistema su Android ICS

    Anche se è una soluzione hacky, penso che merita attenzione, perché non richiede la radice del dispositivo: getWindow().getDecorView().setSystemUiVisibility(8); .

    Per hide la barra di stato e la barra di navigazione in applicazioni Android

     LinearLayout layout = (LinearLayout)findViewById(R.id.layout); layout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

    EDIT: A partire da 4.4 (19) è ansible utilizzare quanto segue per triggersre quello che viene chiamato "IMMERSIVE MODE". È stato introdotto per il vrtoolkit di Cartone di Google, ma può essere utilizzato in generale.

    setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE)

    https://developer.android.com/training/system-ui/immersive.html

    Dai miei sforzi, sembra che: setSystemUiVisibility (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) non funziona in compresse.

    Funziona sugli smartphone (testati con un Nexus 4 Mako), ma riappare in un evento touch / click. Questo sembra anche catturare la messa a fuoco sul bar, costringendolo a fare due volte clic per ripristinare la messa a fuoco sulla visualizzazione.

    Ho cercato di trovare un modo per intrappolare l'evento che effettivamente ripropone il bar. Senza fortuna.

    Essendo testardato, andrò a scaricare il codice di android, sparare il debugger eclipse e andare a-huntin. Questo non è un bug: il bar di navigazione è fondamentale per il ciclo di vita di app.

    Ho visto apps farlo (giochi e simili) quindi c'è un modo senza rooting.

    inserire questo codice nel tag di applicazione nel file manifesto per hide la barra delle tabs predefinita

     <Application android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" <!-- other parameters of application tag--> > 

    e quindi fare un layout lineare o relativo e inserirlo nel layout di attività.

    Non puoi nasconderlo se non hai radicato il dispositivo. Ma ovviamente c'è una soluzione alternativa che potrebbe non corrispondere al tuo requisito, ma adesso appaiono numerose applicazioni sul mercato attualmente utilizzando questa strategia per get questa funzionalità di barra dei menu di disabilitazione per le loro applicazioni.

    • Grant privilegio amministratore.
    • Impostare la password e bloccare il dispositivo utilizzando il profilo di amministrazione di dispositivi api
    • Quindi caricare ciò che mai gli UI in cima allo schermo di block nativo. (Ovviamente questo mostrerà lo schermo di block di background each volta che una transizione avviene tra le attività, ma se la logica è ben organizzata, allora sarà liscia e less notata dall'utente)
    • Quando è necessario abilitare il backup, reimpostare la password su "" utilizzando resetPassword ("", 0) dell'object del gestore di policy di dispositivo.

    potrebbe essere è il button behavor è abbastanza si può avere uno sguardo nella mia risposta qui

    hai ancora il bar ma non puoi uscire da app senza riavvolgere il tablet

    È ansible hide la barra di navigazione su Android 4.0 e superiore utilizzando la barra SYSTEM_UI_FLAG_HIDE_NAVIGATION. Questo snippet nasconde sia la barra di navigazione che la barra di stato:

     View decorView = getWindow().getDecorView(); // Hide both the navigation bar and the status bar. // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as // a general rule, you should design your app to hide the status bar whenever you // hide the navigation bar. int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions 

    Vedere quanto segue: hide la barra di navigazione

    Se il tuo dispositivo è radicato questo codice ti aiuterà a hide la barra di sistema in ICS (ho provato su Samsung Galaxy Tab 2 e funziona eccellente):

     ArrayList<String> list = new ArrayList<String>(); Map<String, String> env = System.getenv(); for (String envName : env.keySet()) { list.add(envName + "=" + env.get(envName)); } // Array containing the environment to start the new process in String[] envp = (String[]) list.toArray(new String[0]); String hidingCommand = "while [ true ]\n" + "do\n" + "killall com.android.systemui\n" + "done\n"; Runtime.getRuntime().exec(new String[] { "su", "-c", command }, envp); myContext.sendBroadcast(new Intent("com.mycompany.myapp.ACTION_BARHIDDEN")); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.