3

Ich versuche, einen AccessibilityService zu erstellen, um mit Xamarin Android global nach Gesten zu hören.Touchscreen-Ereignisse funktionieren nicht mehr, nachdem AccessibilityService unter Android aktiviert wurde

Der Dienst funktioniert und empfängt die Gesten und Ereignisse, aber das Gerät stoppt die Interpretation dieser Ereignisse. Es scheint, dass jedes Berührungsereignis verworfen wird. Ich habe alle Kombinationen ausprobiert Ich denke über können aber keine funktioniert, muss ich was aber weiß nicht, etwas fehlt ...

Hier ist der Code für den Service:

[Service(Enabled = true, Exported = false, Permission = "android.permission.BIND_ACCESSIBILITY_SERVICE"), 
    IntentFilter(new [] { "android.accessibilityservice.AccessibilityService" }), 
    MetaData("android.accessibilityservice", Resource = "@xml/serviceconfig")] 
public class ActionAccessibilityService : AccessibilityService 
{ 
    public override void OnAccessibilityEvent(AccessibilityEvent e) 
    { 
     Console.WriteLine("Event: " + e.EventType); 
    } 

    public override void OnInterrupt() 
    { 
    } 

    protected override void OnServiceConnected() 
    { 
     AccessibilityServiceInfo info = new AccessibilityServiceInfo(); 
     info.EventTypes = EventTypes.GestureDetectionStart | EventTypes.GestureDetectionEnd; 
     info.Flags = AccessibilityServiceFlags.RequestFilterKeyEvents | AccessibilityServiceFlags.RequestTouchExplorationMode; 
     info.FeedbackType = Android.AccessibilityServices.FeedbackFlags.Generic; 
     this.SetServiceInfo(info); 
    } 

    protected override bool OnKeyEvent(KeyEvent e) 
    { 
     return false; 
    } 
} 

Und hier ist der Inhalt des servceconfig.xml Datei:

<?xml version="1.0" encoding="utf-8" ?> 
    <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" 
     android:canRequestFilterKeyEvents="true" 
     android:canRequestTouchExplorationMode="true" 
    /> 

Antwort

Verwandte Themen