7

काम नहीं कर रहा है मैं पिक्सेल डिवाइस पर फिंगरप्रिंट जेस्चर के साथ एक्सेसिबिलिटी पर परीक्षण कर रहा हूं। मैं फ़िंगरप्रिंट जेस्चर कंट्रोलर का उपयोग करके इशारा कॉलबैक प्राप्त करने का प्रयास कर रहा हूं लेकिन सेटिंग-> एक्सेसिबिलिटी से इस ऐप के लिए एक्सेसिबिलिटी चालू करने के बाद भी मुझे कोई इशारा नहीं मिलता है। isGestureDetection उपलब्ध है() हमेशा मेरे लिए झूठा लौट रहा है। क्या कोई मदद कर सकता है।एंड्रॉइड ओ - फिंगरप्रिंट जेस्चर कॉलबैक

यहाँ कोड है:

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

उत्तर मिला। मुझे xml में भी यह ध्वज चाहिए:

android:accessibilityFlags="flagDefault|flagRequestFingerprintGestures" 
संबंधित मुद्दे