2012-04-05 7 views
0

Ich habe die Funktionen der Rückseite und der Homebutton überschrieben, um Benutzer zu verhindern, das Telefon als ein Telefon zu verwenden. Wir geben Telefone an Kunden (Studenten) und wir wollen nicht, dass sie die Telefone in einem bestimmten Modus missbrauchen.Homebutton überschrieben, aber immer noch beendet, wenn Optionsmenü geöffnet ist

Die Sache ist, die HOME-Taste ist deaktiviert, aber wenn ich zuerst das Optionsmenü öffne und dann keine Option auswähle, sondern die HOME-Taste drücke, funktioniert das HOME trotzdem normal.

Gibt es trotzdem, diese zu überschreiben und einen boolean verwenden, manchmal ja, manchmal nein ..

Was ich jetzt habe, ist dies:

@Override 
public void onBackPressed() {  
    if (buttonslocked) { 
      //backbutton blocked! 
     } else { 
      super.onBackPressed(); 
     } 
    } 

@Override 
public void onAttachedToWindow() 
{ //HOMEBUTTON 
    if(buttonslocked) 
    { 
     this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
      super.onAttachedToWindow(); 
    } 
    else 
    { 
     this.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION); 
     super.onAttachedToWindow(); 
    } 
} 

Antwort

1

Sie nicht die Home-Taste Funktionen außer Kraft setzen können.

So wie eine Klärung, obwohl Sie einige Hacks sehen kann, dass könnte bieten, was Sie für .. suchen Dies wird nicht unterstützt und entmutigt!

+1

@LarsDiego: Insbesondere funktionieren die in der Frage beschriebenen Techniken nicht von Android 4.0. Wenn Sie die HOME-Taste steuern möchten, sollten Sie ein Startbildschirm sein. Um zu verhindern, dass Benutzer zum normalen Startbildschirm zurückkehren, erstellen Sie eine eigene Firmware mit dem Startbildschirm als * nur * Startbildschirm und installieren Sie sie auf den betreffenden Geräten. – CommonsWare

+0

@CommonsWare, danke! Ich werde danach gehen! – Diego

Verwandte Themen