5

Ich entwickle eine Anwendung nur für Tablet, wo die Anforderung ist, die App auf dem Vollbild des Tablet zu laufen.So verstecken Sie unteren Systemleiste in Android-Tablet

Dafür ich folgenden Code in meiner Haupttätigkeit verwendet habe:

getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 

Dieser Code-Schnipsel entfernt nur die Titelleiste und Aktionsleiste. In Tablets gibt es jedoch eine untere Systemleiste (mit Home- und Back-Button). Ich möchte diese Systemleiste auch entfernen oder ausblenden.

ich gesucht, aber es gibt nur Lösung folgende:

  1. Es gibt keine API zu entfernen oder die Systemleiste auszublenden.
  2. Sie können einige Android-App verwenden, um Systemleiste zu verstecken. (Zum Beispiel: SureLock, hidebar, etc)

Meine Frage ist:

  1. Ist es wirklich nicht möglich, in Android?
  2. Above verfügbar app (d.h SureLock, verstecken Bar, etc.) auch bar versteckt. Es bedeutet, dass sie etwas verwenden, um dies zu tun. Verwenden Sie diese etwas in unserer App, so dass der Benutzer diese App nicht separat herunterladen müssen.

Bitte führen Sie mich.

Ich weiß, dass dies keine gute Idee ist. Aber meine App ist nur für ein Tablet mit Android 4.0 oder höher und das Tablet wird nur diese einzelne App ausführen, so dass wir nicht zurück gehen und Home-Taste verwenden müssen. Deshalb meine Forderung ist die App in vollem Umfang nutzen zu können.

+1

Ich glaube nicht, dass es eine gute Idee ist, die Systemleiste auszublenden, da dies der Ort ist, an dem der Benutzer das Verhalten Ihrer App steuern kann - Schaltfläche Zurück/Home. – hardartcore

+0

http://stackoverflow.com/a/12605313/931982 – stinepike

Antwort

5

Dies ist nur möglich, wenn Sie root-Zugriff haben. Alternativ können Sie auch eine launcher application erstellen.

Sonst wird es über den Rahmen Ihrer Anwendung sein System/Navigationsleiste auszublenden.

+0

Was meinen Sie mit "Es ist nur möglich, wenn Sie entweder den Root-Zugriff haben oder Sie eine Launcher-Anwendung erstellt haben." ? –

+1

Android ist ein Betriebssystem auf Linux-Basis. So wie in Linux, Android haben auch zwei Arten von Benutzern: 1. Super/Root-Benutzer 2. Normaler Benutzer. Wenn Sie nun den root-Benutzerzugriff erhalten oder eine Anwendung als Go Launcher oder ähnliches erstellen, können Sie nur das tun, was Sie wollen. – Shrikant

+0

Wie kann ich root-Zugriff auf meine App haben? Und wie ist es möglich, wenn ich Root-Zugang habe, um die Systemleiste zu verstecken? –

9

Wenn Sie Root-Zugriff haben, können Sie diesen Code andere weise es nicht verwenden

try{ 
    //REQUIRES ROOT 
    Build.VERSION_CODES vc = new Build.VERSION_CODES(); 
    Build.VERSION vr = new Build.VERSION(); 
    String ProcID = "79"; //HONEYCOMB AND OLDER 

    //v.RELEASE //4.0.3 
    if(vr.SDK_INT >= vc.ICE_CREAM_SANDWICH){ 
     ProcID = "42"; //ICS AND NEWER 
    } 



    //REQUIRES ROOT 
    Process proc = Runtime.getRuntime().exec(new String[]{"su","-c","service call activity "+ ProcID +" s16 com.android.systemui"}); //WAS 79 
    proc.waitFor(); 

}catch(Exception ex){ 
    Toast.makeText(getApplicationContext(), ex.getMessage(), Toast.LENGTH_LONG).show(); 
} 
erlaubt ist

See this

+0

Hallo, Antwort funktioniert total gut. Aber wie kann ich die Bar wieder zeigen Kannst du bitte helfen? – mesopotamia

0

Nach viel die Suche im Internet, ich es geschafft, das System-Bar kennen zu verstecken und erscheinen in einem 4.2-Gerät:

To Hide:

Runtime.getRuntime().exec("service call activity 42 s16 com.android.systemui"); 

oder 79 statt 42 für API verwenden weniger als 14. Sie auch die SET_DEBUG_APP Erlaubnis umfassen müssen, wobei in diesem Fall, dass Sie die Anwendung mit dem Systemschlüssel oder installierte im Verzeichnis/system/app/Verzeichnis unterzeichnet haben müssen.

Zeigen:

Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService"); 

Alternativ einige Leute die -a verwendet haben (anstelle von -n) Option, obwohl dies einen Fehler auf meinem Gerät verursacht wurde:

Fehler: Nicht gefunden; Kein Service gestartet.

7

Von Android API 4.0 und höher können Sie den folgenden Code verwenden, um die untere Systemleiste auszublenden.

+0

Dieser arbeitete wie ein Charme! Vielen Dank! – NateW

Verwandte Themen