Gibt es eine Möglichkeit, Touch auf ANY-Anwendung von einem Dienst zu blockieren? Ich habe über getWindow()
nachgedacht, aber das ist unmöglich im Service. Außerdem habe ich darüber nachgedacht, aktuelle Aktivitäten zu erhalten und dann getWindow()
zu verwenden. Ich hoffe, du weißt, was ich zu erreichen versuche.Block Touch von einem Service
0
A
Antwort
0
Dank David Medenjak habe ich es geschafft, das Problem zu lösen. Diese Lösung arbeitet mit Android-APIs unter 23 und macht den Bildschirm schwarz und blockiert Berührungen, bis Sie auf dem Bildschirm lang drücken.
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
ImageView black = new ImageView(this);
black.setImageResource(R.drawable.black);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 0;
windowManager.addView(black, params);
black.getLayoutParams().height = windowManager.getDefaultDisplay().getHeight();
black.getLayoutParams().width = windowManager.getDefaultDisplay().getWidth();
black.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return false;
}
});
Verwandte Themen
- 1. Android Touch-Ereignis von Hintergrund-Service
- 2. Ruby: Ausbeute Block von einem Block?
- 3. Access AngularJS-Service von einem Service in einem anderen Rahmen
- 4. Erkennen Touch-Ereignis von Navigationstasten in einem Dienst mit Fenster
- 5. Variable Zuordnung erfolgt in einem Block in einem Block
- 6. Tabs in einem Block
- 7. Rückgabe von Methode in einem @ synchronisierten Block
- 8. Drupal: Zugriff auf $ Profil von einem Block
- 9. "Select_for_update" von einem atomaren Block noch TransactionManagementError
- 10. Standardwert von Dropdownlist in einem Html.BeginForm Block
- 11. Windows-Äquivalent von 'touch'
- 12. Generieren von Service-Vertrag von einem WSDL
- 13. Weitergabe von Daten von einem Service zu einem anderen
- 14. Delegieren von Touch-Ereignissen
- 15. Wie ein Block von HTML mit einem anderen Block von HTML ersetzen
- 16. $ Uhr in einem Service?
- 17. Daten von meinem Web-Service Anreise mit Proxy: Rest von Sencha Touch 2
- 18. Rails finden mit einem Block
- 19. Wordspacing von justify Block
- 20. Mehrere Zeilen von einem asmx-Service zurückgeben
- 21. Anruf eines Web-Service von einem httpmodul
- 22. AngularJs verwenden Service von einem anderen Modul
- 23. XML von einem Web-Service-Anruf aus
- 24. Wie kille ich Aktivität von einem Service
- 25. Erste JSON-Daten von einem REST-Service
- 26. Update `RecyclerView` Datensatz von einem Service
- 27. Echtzeit Sportergebnisse von einem Web-Service?
- 28. Scrubbing einen Block von einem Aufruf von super
- 29. Sencha Touch 2: Hinzufügen von Registerkarten zu einem Formularbereich
- 30. äquivalent von "touch" in scons?
Sie können mit 'WindowManager' eine Ansicht hinzufügen und alle Klicks selbst konsumieren. So machen es die "Screen Lock" -Apps. –
Gute Idee. Vielen Dank! Ich bekomme das _Unable Fenster hinzufügen [email protected] - Berechtigung für diesen Fenstertyp_ verweigert. Der Fehler tritt auf, wenn ich versuche, auf dem Gerät mit Android API> = 23 eine Ansicht zu 'WindowManager' hinzuzufügen. – jelic98