2012-04-09 11 views
8

Ich mache eine proprietäre App für eine Firma, die es nie in Ice Cream Sandwich (Android 4.0) auf den Android Market (oder Play Store, denke ich jetzt) ​​veröffentlichen wird.Disable Home-Taste in Android ICS (4.0)

Ich muss das Home deaktivieren, damit die Benutzer Software nicht böswillig deinstallieren oder die von der App erfassten Daten löschen können. Diese neueste Version ist die erste in 4.0 geschrieben, die früheren Versionen wurden in 2.2 und 3.2 geschrieben.

Um die Home-Taste in 2.2 zu deaktivieren, habe ich die App als Home-Ersatz zugeordnet, also öffnete die Taste die App gerade, aber ich kann diese Methode nicht mehr verwenden, da wir dadurch unsere Updates nicht mehr ausführen können . (wir wollen nicht den Verbraucher geben die Möglichkeit, erneute Auswahl eines Home Standard, wie zum Löschen von Daten führen würde

der Code ich habe für disableing die Home-Taste in 3.2:

@Override 
public void onAttachedToWindow() { 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 
} 

und, unter onCreate:

KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard(); 

Aber wenn ich den gleichen Code, der auf meinem 3.2 Tablet funktioniert, funktioniert es nicht auf meinem 4.0 Tablet.

Ich frage mich, ob es eine neue API oder Methode gibt, die 4.0 hat, die den gleichen Effekt wie ich derzeit in meiner 3.2-Implementierung erreichen werde.

Danke für jede Hilfe oder Richtung.

Adam

+0

Ihre App verhält sich wie Malware, da sie die Kontrolle über das Gerät vom Benutzer wegnimmt. Android 4.0+ soll genau das verhindern. – Dubs

Antwort

6

Wie wäre es dieses Problem zu umgehen ..

eine zweite App schreiben, die den Home-Bildschirm implementiert, wenn die Taste Startbildschirm diese App in den Vordergrund kommen gedrückt wird. Von dieser App müssen Sie dann Ihre Haupt-App zurück in den Vordergrund schieben. Der einzige Haken ist, dass Ihre Home-Bildschirm-App niemals ein Update benötigt, aber Sie sollten in der Lage sein, die Haupt-App frei zu aktualisieren, ohne dass der Tab gefragt wird, ob Sie den Home-Launcher einrichten möchten.

Hoffen Sie, dass das Sinn macht.

+0

Ihre Erklärung ergab einen Sinn und es funktionierte perfekt. Es gab nur ein kleines Flimmern von meiner Haupt-App zum Heim-Hijacker ... aber das ist zu erwarten, wenn man Apps wechselt. Beim Start habe ich die Hijacking-App nach hinten verschoben, wodurch das Flimmern etwas reduziert wurde. – adamacdo

+0

der Benutzer kann immer noch deaktivieren diese App –

+0

Ich brauche auch die gleiche Art von Szenario, aber wir können die App mit der Eclipse DDMS verlassen und auch die lange Maustaste auf den Home-Button aktiviert den Task-Manager. gibt es eine Möglichkeit, wie wir das lange Drücken der Home-Taste deaktivieren können? – DAS

0

Nein .... Sie können nicht nach Hause Button für Android4.0 außer Kraft setzen atleast .. mit Lösung von "hotveryspicy" Und, wenn Sie auf die Home-Taste reagieren wollen, implementieren einen Bildschirm zu Hause.

+0

Ich kann die App nicht als Startbildschirm zählen, denn wenn wir die App aktualisieren, hat der Benutzer die Möglichkeit, den Bestand Home als Startprogramm auszuwählen, mit dem sensible Daten gelöscht werden können ... was die Nummer eins ist Ich muss es vermeiden. – adamacdo