Beiträge von Informatiker

    Hier ist ja ein Lösungsansatz:


    android intercept recent apps button - Stack Overflow




    Das funktioniert
    auch, aber leider nicht immer, sondern nur meistens oder machmal.


    Und außerdem ist das nicht akzeptabel, dass das Recentsmenü angezeigt wird.




    Hier ist der Code der Recentsactivity von Android:


    GC: RecentsActivity - com.android.systemui.recent.RecentsActivity (.java) - GrepCode Class Source




    Da gibt es nicht nur wie in dem Codebeispiel hier das:


    Code
    String TOGGLE_RECENTS_INTENT = "com.android.systemui.recent.action.TOGGLE_RECENTS";

    sondern auch das:


    Code
    String CLOSE_RECENTS_INTENT = 
    "com.android.systemui.recent.action.CLOSE";

    Und ich glaube
    letzteres ist das was ich suche.




    In dem Codebeispiel hier steht:


    Code
    Intent closeRecents = new Intent("com.android.systemui.recent.action.TOGGLE_RECENTS");

    daraus habe ich einfach mal


    Code
    Intent closeRecents = new Intent("com.android.systemui.recent.action.CLOSE");

    aber das hat dazu geführt, dass es gar nicht mehr ging.




    Hat jemand einen Rat?

    So jetzt muss ich com.android.systemui.recent.RecentsActivity


    importen, aber da meckert eclipse ... nach vielen Minuten googlen bin ich darauf gekommen:


    A way to import system files into Eclipse without errors (Android)? : Android Community - For Application Development




    Zitat

    Otherwise, you will have to fix each and every dependency
    yourself, by hand, for those dependencies that can indeed be
    fixed.

    Also mit anderen Worten, ich soll das nicht machen, und
    wenn ichs mache, dann müsste ich alle irgendwelche Abhängigkeiten
    behandeln.




    So aber ich denke mir, dass die eine Kiosk App Surelock das doch auch
    konnte. Ich solls zwar nicht tun, aber verdammt der hätte trotzdem mal
    erklären können wie es trotzdem gehen würde, auch wenn mans nicht tun
    soll. Mir bleibt keine andere Wahl!

    Ich habe mal den Android Quellcode gelesen und herausgefunden, dass ab
    Android 4.2 bis 4.4 und vielleicht auch demnächst danach die
    Recentsactivity existiert und ein Intent empfangen kann, das die
    Recentsansicht deaktiviert oder so. Vor 4.2 existiert zwar ein Package
    recent oder recents oder so mit Klassen drin, aber ne Activity habe ich
    da nicht drin gesehen. Frage mich wie das damals ohne Activity überhaupt
    ging. Naja egal.




    Problem ist damit noch nicht ganz gelöst, aber ich bin jetzt zumindest auf einer heißen Spur!

    Es gibt einen Grund in die Funktionalität einzugreifen, wenn man einen Kiosk Modus programmieren möchte, insbesondere dann wenn das die Aufgabe meiner Informatik Masterarbeit ist, die mir ein Professor gegeben hat. Außerdem gibt es mehrere solcher Apps die einen Kioskmodus umsetzen und die sind nicht von der Firma, die das Betriebssystem programmiert haben. Das gilt für Adroid, aber auch für Windows etc. Ein Kiosk Mode war noch nie die Aufgabe des Betriebssystems, lediglich die Bereitstellung der Betriebssystemfunktionen.


    Zitat

    Mir fällt als einzige Möglichkeit nur ein, dass Du Deine Manifest-Datei
    anpasst. Gemäß Surelock fangen sie 'einfach' das Intent
    com.android.systemui.recent.RecentsAcitivity
    ab.

    Wie geht das? Ich dachte in Manifestdateien kann ich nur etwas über meine App eintragen und nicht über das System.



    Wenn mit Tablets Klassenarbeiten geschrieben werden sollen, dann dürfen die Schüler nicht abgucken können. Dafür braucht man einen Kiosk Modus. Auch Geldautomaten etc. brauchen einen Kiosk-Modus und der kommt nicht von Microsoft.

    Hallo



    Ich programmiere OpenSource.



    Ich will dass die Recents Taste entweder nicht mehr angezeigt wird oder besser dass sie gar nicht mehr funktioniert. Bei der App </acronym>Surelock oder Sitekiosk funktioniert das auf unterschiedliche Art. Das muss auch ohne rooten gehen.



    Im Internet gibt es verschiedene Ansätze. Aber entweder sie
    funktionieren nur manchmal oder gar nicht. Und der eine Ansatz, der
    manchmal funktioniert funktioniert mit einer Methodik die doof ist, weil
    das Recents-Menü für eine Sekunde doch noch angezeigt wird.


    http://www.juliencavandoli.com/how-t...s-home-button/
    http://stackoverflow.com/questions/1...nt-apps-button



    Die App </acronym>Surelock zeigt beim clicken auf die Recents Taste folgendes an:


    Surelock blocked: com.android.systemui


    com.android.systemui.recent.RecentsAcitivity



    Kann man irgendwie programmfremde Activities sperren?


    EDIT:
    Also mit Keyevents geht das nicht. Für jede andere Taste würde das gehen, aber bei der Recents Taste geht das nicht.
    Kann man nicht irgendwie Appfremde Activities vorm plötzlichen starten blocken, also damit auch dieses Recentsmenü?


    Oder Prozesse blocken?


    Gibts da auch Kernelhooks, die feuern, wenn ein Prozess oder eine Activity gestartet wurde?


    Oder hat jemand zumindest Ideen, wie man das lösen könnte?