Android O - 辅助功能服务 - 指纹手势回调

时间:2017-06-14 08:14:58

标签: android-accessibility android-8.0-oreo

我正在尝试使用来自android O的新指纹手势回调。

我在清单

中声明了这些
<uses-feature android:name="android.hardware.fingerprint"/>
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>

我的辅助功能服务xml如下所示:

<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
                   android:description="@string/accessibility_service_description"
                   android:accessibilityEventTypes="typeAllMask"
                   android:accessibilityFlags="flagRequestFingerprintGestures"
                   android:accessibilityFeedbackType="feedbackAllMask"
                   android:notificationTimeout="100"
                   android:canRetrieveWindowContent="false"
                   android:canRequestEnhancedWebAccessibility="false"
                   android:settingsActivity="com.example.finger.MainActivity"/>

..然后在辅助服务onServiceConnected方法中我试图用以下内容注册一个回调

 FingerprintGestureController.FingerprintGestureCallback callback = new 
 FingerprintGestureController.FingerprintGestureCallback(){

            @Override
            public void onGestureDetectionAvailabilityChanged(boolean available) {
                LogUtil.d("available: " + available);
                super.onGestureDetectionAvailabilityChanged(available);
            }

            @Override
            public void onGestureDetected(int gesture) {
                LogUtil.d("gesture: " + gesture);
                super.onGestureDetected(gesture);
            }
        };

 FingerprintGestureController controller = 
 this.getFingerprintGestureController();
 controller.registerFingerprintGestureCallback(callback, null);

可访问性服务注册正常,上面的代码注册回调被称为ok,但我从来没有调用onGestureDetectionAvailabilityChanged和onGestureDetected

有关它的文档有点缺乏,所以我不确定我还需要什么才能让回调正常工作。

1 个答案:

答案 0 :(得分:0)

您需要将android:canRequestFingerprintGestures="true"添加到xml文件