Status Bar in Honeycom 3.01 deaktivieren

  • Hi,


    habe meine erste kleine Video app geschrieben, soweit klappt es mit der Hilde des Forums wunderbar...



    jetzt würde ich noch gerne die untere Zeile ausschalten. bei dem Progamm Icon oben klappt es... bei dem


    // Fullscreen


    requestWindowFeature(Window.FEATURE_NO_TITLE);


    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);




    // unter system bar weg


    final View mainView = findViewById(R.layout.mainscreen);


    mainView.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);



    wäre swo klemmts, api steht auf 11! soweit sollte es gehen... oder muß ich irgendwo noch was im manifest einstellen.


    und dann hätte ich ncoh die Frage wie man eine Anwendung autostart verpasst... geht das prinzipiell, oder eher nicht. würde gerne ein paar Tablet als Kiosk Systeme benutzen.


    danke und grüße

  • Hmm aus deinem Kauderwelsch werde ich nicht schlau. Zeig doch mal einen Screenshot und sag uns was dich stört bzw weg soll.


    Was ist ... die untere Zeile ????
    Was klappt beim Icon ????


    Im Manifest kannst du ein Theme vorwählen (in den Activities) - liest du hier unter Themes was so machbar ist:


    http://developer.android.com/r…yle.html#Theme_NoTitleBar


    Für Autostart gibt es mehrere Varianten:


    BroadcastReceiver erstellen und -> BOOT_COMPLETED action setzen.
    oder in der App einen Service starten, der halt immer läuft.


    Beides ist so ein zweischneidiges Schwert, musste halt selber mal sehen was besser für dich ist (Ich tippe auf Var1)



    der phil

  • ok, ich versuche es mal auf deutsch. leider ist das problem dass ich bisher keine übersicht der in android benutzten UI elemente gefunden habe... das machts nicht leichter für einsteiger.


    also ich meine die leiste mit dem home, wlan und uhr usb icon, in windows wäre das die taskleiste, sorry den vergleich.


    und diese leiste möchte ich ausschalten wenn meine app rennt.


    grüße

  • Ok, also wenn du in deiner Activity als Theme "[i]Theme_NoTitleBar_Fullscreen " [/i][i]wählst dann ist die Leiste doch weg,
    oder meinst du noch eine andere Leiste ???


    Ich habe in meiner App zB. ein eigenes Theme erschaffen, wo ich ein Hintergrundbild brauchte. Also leite ich von einem bestehenden Theme ab und füge nur mein Hintergrund dazu, der Vorteil: alles schön in XML und du kannst es wieder verwenden für all deine anderen Apps.


    datei: values/kstyle.xml
    [/i]

    Code
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <style name="KStyle" parent="android:Theme.Light.NoTitleBar">
     
        <item name="android:windowBackground">@drawable/backgstier</item>
            
    </style>
    </resources>


    [i]Wichtig ist hier die Zeile mit: [/i]
    android:Theme.Light.NoTitleBar
    -> das ist das Theme von dem ich ableite


    [i]
    und in meinen Activities benutze ich dieses Theme als Theme / also im Manifest sieht das so aus.
    [/i]

    Code
    <activity android:theme="@style/KStyle" android:name=".RBLLinks"></activity>


    [i]
    der phil
    [/i]

  • Ja aber bei "Theme_NoTitleBar_Fullscreen" müsste er die gesamte Fläche ausfüllen. (Spiele nutzen ja auch den gesamten Screen)


    Kann es sein das in der Bar die "Hardware" Button (Menu,Home, Back) verankert sind - dann soll die eigentlich nicht "Hideable" sein - das ist dann mehr ein Hardwareproblem.


    PS: Frickellösung liest du hier


    http://stackoverflow.com/quest…its-an-internal-device-an


    http://android.serverbox.ch/?p=306

  • hi,


    habe auch die zweite frickellösung gefunden und schon mal angeworfen. funktioniert soweit auf dem tablet, muß ich jetzt noch bei dem onDestroy wieder rückgängig machen, für die kiosk lösung sollte es erstaml funktionieren.


    danke und grüße


    ach ja, wie kann ich die app jetzt nach dem boot starten, geht das?

  • ok, folgende klasse dem projektchen zugeordnet.


    wenn ich die beiden indent zeilen aktiviere stürzt die anwendung beim booten ab. auskommentiert sehe ich den toast text...
    wie kann ich jetzt myVideoActivity starten... wo klemmts...


    wäre nett wenn wir du mir hier noch helfen kannst.


    grüße



    public class MyReceiver extends BroadcastReceiver{


    @Override
    public void onReceive(Context context, Intent arg1) {


    Log.v("Device Booted", "************ DEVICE BOOTED ******************");
    Intent myIntent = new Intent(context, AlarmService.class);
    PendingIntent pendingIntent = PendingIntent.getService(context, 0, myIntent, 0);
    Toast.makeText(context, "Die Kiste ist hochgefahren!", Toast.LENGTH_LONG).show();


    // Intent newIntent = new Intent(context, myVideoActivity.class);
    // context.startActivity(newIntent);


    }
    }


    mein manifest sieht so aus:


    <uses-sdk android:minSdkVersion="11" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>


    <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" android:hardwareAccelerated="true">


    <activity
    android:name=".myVideoActivity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >


    <intent-filter>


    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />


    </intent-filter>
    </activity>


    <receiver android:name=".MyReceiver">
    <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
    </receiver>



    </application>

  • Also ich vermute mal deine App läuft nicht deswegen kann er auch nicht auf die Activity (er weiss ja nicht wie er die Initalisieren soll) zugreifen.
    Wenn ich andere Apps über den Launcher starte (hier zb. TuneIn) dann mache ich das so:


    Code
    Intent i = new Intent(Intent.ACTION_MAIN);
        PackageManager manager = getPackageManager();
        i = manager.getLaunchIntentForPackage("tunein.player");   
        i.addCategory(Intent.CATEGORY_LAUNCHER);
        startActivity(i);


    Also ich würde den Receiver in ein einzelnes Projekt packen und dein App daraus starten bzw. musst du den gesamten package Namen beim Zugriff angeben.


    lg
    der phil




    PS: http://www.androidenea.com/200…d-service-after-boot.html

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!