Wo sind eigentlich die Manifestdateien im Android Betriebssystem Source?
Würde dieses Buch mir weiterhelfen?
http://www.packtpub.com/learning-android-intents/book
Beiträge von Informatiker
-
-
Hier ist ja ein Lösungsansatz:
android intercept recent apps button - Stack Overflow
Code
Alles anzeigen@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (!hasFocus) { windowCloseHandler.postDelayed(windowCloserRunnable, 0); } } private void toggleRecents() { Intent closeRecents = new Intent("com.android.systemui.recent.action.TOGGLE_RECENTS"); closeRecents.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); ComponentName recents = new ComponentName("com.android.systemui", "com.android.systemui.recent.RecentsActivity"); closeRecents.setComponent(recents); this.startActivity(closeRecents); } private Handler windowCloseHandler = new Handler(); private Runnable windowCloserRunnable = new Runnable() { @Override public void run() { ActivityManager am = (ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); ComponentName cn = am.getRunningTasks(1).get(0).topActivity; if (cn != null && cn.getClassName().equals("com.android.systemui.recent.RecentsActivity")) { toggleRecents(); } } }
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:
sondern auch das:
Und ich glaube
letzteres ist das was ich suche.In dem Codebeispiel hier steht:
daraus habe ich einfach mal
aber das hat dazu geführt, dass es gar nicht mehr ging.
Hat jemand einen Rat?
-
Wie kann man Intents blocken?
-
So jetzt muss ich com.android.systemui.recent.RecentsActivity
importen, aber da meckert eclipse ... nach vielen Minuten googlen bin ich darauf gekommen:
ZitatOtherwise, 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.
ZitatMir 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-buttonDie 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?