Ich entwickle eine Lock Screen App in Android Studio. Ich weiß, dass wir die HOME-Taste nicht deaktivieren können. Aber es gibt so viele Sperrbildschirm-Anwendungen im Play Store. Wie machen sie das? Wenn ich in diesen Apps die Home-Taste drücke, passiert nichts. Type Keyguard ist veraltet und Keylocker. Bitte, sag mir, wie ich den Home-Button machen kann, um nichts zu tun oder auf dem gleichen Bildschirm zu sein. Jetzt möchte ich es nicht als Home-Bildschirm einrichten, weil es dem Benutzer die Möglichkeit gibt, zwischen den Startbildschirmen zu wählen, und ich entwickle eine Lock-Screen-App. Wenn dies die einzige Lösung ist, dann sag mir, wie ich meinen Bildschirm als Startbildschirm machen soll programmatisch. Bitte geben Sie die richtige Antwort.Ändern Home Button Verhalten für Sperren Bildschirme in Android
-1
A
Antwort
1
Nach einer Menge Suche auf Google. Ich habe endlich eine Lösung gefunden. Ich habe es auf GitHub gefunden. Wenn jemand interessiert ist. Kopieren Sie einfach die folgende Klasse:
your package name;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.WindowManager;
import android.widget.FrameLayout;
import com.amigo.hammad.screenlock7292016.R;
import static android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
public class HomeKeyLocker {
private OverlayDialog mOverlayDialog;
public void lock(Activity activity) {
if (mOverlayDialog == null) {
mOverlayDialog = new OverlayDialog(activity);
mOverlayDialog.show();
}
}
public void unlock() {
if (mOverlayDialog != null) {
mOverlayDialog.dismiss();
mOverlayDialog = null;
}
}
private static class OverlayDialog extends AlertDialog {
public OverlayDialog(Activity activity) {
super(activity, R.style.AppTheme);
WindowManager.LayoutParams params = getWindow().getAttributes();
params.type = TYPE_SYSTEM_ERROR;
params.dimAmount = 0.0F; // transparent
params.width = 0;
params.height = 0;
params.gravity = Gravity.BOTTOM;
getWindow().setAttributes(params);
getWindow().setFlags(FLAG_SHOW_WHEN_LOCKED | FLAG_NOT_TOUCH_MODAL, 0xffffff);
setOwnerActivity(activity);
setCancelable(false);
}
public final boolean dispatchTouchEvent(MotionEvent motionevent) {
return true;
}
protected final void onCreate(Bundle bundle) {
super.onCreate(bundle);
FrameLayout framelayout = new FrameLayout(getContext());
framelayout.setBackgroundColor(0);
setContentView(framelayout);
}
}
}
Sie können einen Fehler auf Super finden (Aktivität, R.style.AppTheme); diese Linie. Sie müssen nur Ihr App-Thema angeben.
Und dann müssen Sie ein Objekt in der OnCreate-Methode des Sperrbildschirms machen. Und rufe die Sperrfunktion auf. z:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Object of Class HomeKeyLocker.
mHomeKeyLocker = new HomeKeyLocker();
setContentView(R.layout.yourActivityLayoutName);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
// Calling Function in Class HomeKeyLocker to Block Home Button on this Activity.
mHomeKeyLocker.lock(this);
}
1
Sie müssen auf Ihre Aktivität OnKeyDown überschreiben, wie Shark sagte. Kopieren Sie einfach & einfügen unter Code zu Ihrer Aktivität.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if((keyCode==KeyEvent.KEYCODE_HOME)
{
// *** DO YOUR STUFF HERE ***
return true;
}
else
return super.onKeyDown(keyCode, event);
}
Es wird den Klick auf Home-Taste behandeln.
Verwandte Themen
- 1. Home-Button für jede Aktivität
- 2. ändern Home Button für eine Aktivität zu Pfeil links zurück
- 3. Home link oder button
- 4. android app ist nicht in home button cache
- 5. Wie Layout-Bildschirme für alle Android-Gerätegrößen
- 6. Android-Fragment-Bildschirme überlappen
- 7. Home Button 'gedrückt' Erkennung, wenn Telefon gesperrt
- 8. Android: Unterstützung mehrerer Bildschirme
- 9. Ändern Android: DrawableLeft auf Button
- 10. Dynamische Inhalte in Bildschirme in android
- 11. Android gelten Stile für verschiedene Bildschirme
- 12. Erstellen einer Symbolleiste für verschiedene Bildschirme in Android App
- 13. Home-Taste in Android?
- 14. matplotlib hooking in home/back/forward button events
- 15. Ändern der URL zu/home statt/#/home in angularJS App
- 16. Ändern Sie "Floating Action Button" Verhalten nach dem aktuellen Fragment
- 17. Layout für 480 * 800 Bildschirme
- 18. Button Highlight Verhalten auf Froyo geändert?
- 19. button farbe nicht ändern android studio 1.5.1
- 20. Android Button Farbe ändern und Größe inkrementieren
- 21. Bild ändern Floating Action Button Android
- 22. Android App für mehrere Bildschirme (Telefone und Tablet)
- 23. Android-Emulator zeigt 4 Bildschirme
- 24. Android-Home-Schaltfläche deaktivieren
- 25. Android: Änderung Standard Home Anwendungs
- 26. Ändern URL Ziel für "home" Logo in OSCommerce
- 27. Android - wie Hintergrundfarbe aller Bildschirme einstellen?
- 28. Wie Bild für Button in Android hinzufügen?
- 29. Starten Sie meine Android-App mit der Hardware-Taste Home und Sperren-Taste
- 30. Android Button in RelativeLayout nach unten ausrichten?
Versuchen Sie, diese http://stackoverflow.com/a/10025904/5515371 –
Implementieren Sie die 'onKeyDown()' Methode und drücken Sie die Taste dort zu fangen. – Shark
Danke @MujammilAhamed, aber die Sache, die ich sagte, ist Android ist jetzt geändert. Ich meine Keylocker ist nicht da, die Tastensperre ist nicht da und auch TYPE_KEYGUARD ist nicht da. Also, bitte beziehen Sie sich auf Code, der heute funktioniert. –