Wie deaktiviere ich Eingabehilfen in einer Qt-App?Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Wie deaktiviere ich Eingabehilfen in einer Qt-App?

Post by Anonymous »

Das Problem: Sie erstellen eine Android Qt C++-App. Wenn der Benutzer Eingabehilfen aktiviert hat, kommt es zu Verzögerungen bei der App, sie ist so langsam, dass sie unbrauchbar wird und schließlich abstürzt.
Im zugehörigen Android-Protokoll finden Sie Einträge wie diesen:

Code: Select all

[2025-12-28 13:42:43.177 Uid(value=10021):11177:11177 W/Qt A11Y]
Accessibility: populateNode for Invalid ID
[2025-12-28 13:42:43.178 Uid(value=10021):11177:11177 W/Qt A11Y]
AccessibilityEvent with empty description
Das Problem ist in Qt-Fehlerprotokollen seit Qt 5.2 bis Qt 6.8 vorhanden, ich verwende jetzt Qt 6.10 und es ist erneut aufgetreten.

Mögliche Lösungen:
  • In Qt 6.8 gab es eine Lösung, die ziemlich einfach war. Sie verwenden den folgenden Code in Ihrer C++-Funktion main(), um eine Umgebungsvariable zu definieren, bevor Sie Ihre QApplication-Klasse instanziieren:

    Code: Select all

    qputenv("QT_ANDROID_DISABLE_ACCESSIBILITY", "1");
    
  • Sie können auch alle Qt-Bibliotheken aus dem Quellcode neu erstellen, indem Sie während des Builds die Konfigurationsoption -no-feature-accessibility angeben:
    https://doc.qt.io/qt-6/configure-options.html
Lösung (1) funktioniert in Qt 6.10 nicht mehr obwohl der Java-Code zum Lesen der Umgebung „QT_ANDROID_DISABLE_ACCESSIBILITY“ verwendet wird. Variable ist immer noch vorhanden (Datei: QtAccessibilityDelegate.java)
Lösung (2) scheint für ein Problem wie dieses zu extrem und kompliziert zu sein (und Sie müssen sie bei jedem Qt 6.x-Update wiederholen).
Ich habe auch versucht, Barrierefreiheitsfunktionen in AndroidManifest.xml zu deaktivieren oder einige zugehörige Android-Java-Funktionen aufzurufen, aber nichts hat das Problem behoben: Die App verzögert sich immer noch und stürzt ab, die Protokolleinträge sind immer noch vorhanden.
Gibt es einfache Korrekturen, ohne die Qt-Bibliotheken jedes Mal neu erstellen zu müssen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post