Android O - fingerprint gestures callback not working

I am testing a Pixel device with fingerprint gestures ON on accessibility. I try to get gesture callbacks using the FingerprintGestureController, but I never get any gestures in return even after I turn on accessibility for this application in Settings → Availability. isGestureDetectionAvailable () always returns false for me. Maybe someone can help.

Here is the code:

my_gesture_service.xml

<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" android:accessibilityFeedbackType="feedbackGeneric" android:accessibilityFlags="flagDefault" android:canRequestFingerprintGestures="true" /> 

AndroidManifest.xml

 <uses-feature android:name="android.hardware.fingerprint"/> <uses-permission android:name="android.permission.USE_FINGERPRINT" /> <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"/> <service android:name="android.gestures.MyService" android:label="@string/app_name" android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"> <intent-filter> <action android:name="android.accessibilityservice.AccessibilityService" /> </intent-filter> <meta-data android:name="android.accessibilityservice" android:resource="@xml/my_gesture_service" /> </service> 

MyService.java

 public class MyService extends AccessibilityService { private static final String TAG = MyService.class.getSimpleName(); @Override public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) { Log.d(TAG, "onAccessibilityEvent"); } @Override public void onInterrupt() { Log.d(TAG, "onInterrupt"); } @Override protected boolean onGesture(int gestureId) { Log.d(TAG, "onGesture " + gestureId); return super.onGesture(gestureId); } @Override protected boolean onKeyEvent(KeyEvent event) { Log.d(TAG, "onKeyEvent " + event.getKeyCode()); return super.onKeyEvent(event); } @Override public void onDestroy() { Toast.makeText(getApplicationContext(), "onDestroy" , Toast.LENGTH_SHORT).show(); super.onDestroy(); } @Override protected void onServiceConnected() { super.onServiceConnected(); Log.d(TAG, "onServiceConnected"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { FingerprintGestureController gestureController = getFingerprintGestureController(); Toast.makeText(getApplicationContext(), "Is available: " + gestureController.isGestureDetectionAvailable(), Toast.LENGTH_LONG).show(); Log.e(TAG, "Is available: " + gestureController.isGestureDetectionAvailable() ); FingerprintGestureController.FingerprintGestureCallback callback = new FingerprintGestureController.FingerprintGestureCallback() { @Override public void onGestureDetectionAvailabilityChanged(boolean available) { super.onGestureDetectionAvailabilityChanged(available); Toast.makeText(getApplicationContext(), "Gesture available change to: " + available, Toast.LENGTH_SHORT).show(); Log.d(TAG, "onGestureDetectionAvailabilityChanged " + available); } @Override public void onGestureDetected(int gesture) { super.onGestureDetected(gesture); Toast.makeText(getApplicationContext(), "Gesture: " + gesture, Toast.LENGTH_SHORT).show(); Log.d(TAG, "onGestureDetected " + gesture); } }; gestureController.registerFingerprintGestureCallback(callback, new Handler()); } } @Override public boolean onUnbind(Intent intent) { Log.d(TAG, "onUnbind " ); return super.onUnbind(intent); } } 
+9
android android-o android-8.0-oreo android-gesture android-fingerprint-api android-accessibility
source share
3 answers

Found the answer. I also need this flag in xml:

 android:accessibilityFlags="flagDefault|flagRequestFingerprintGestures" 
+10
source share

hey them i'm new to this you can give me the code i want to work on it

0
source share

Could you share the common source code? =

0
source share

All Articles