首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >isGestureDetectionAvailable()总是返回False

isGestureDetectionAvailable()总是返回False
EN

Stack Overflow用户
提问于 2019-11-09 16:11:41
回答 1查看 173关注 0票数 0

我正在尝试检测指纹扫描仪上的手势。我做了一个可访问性服务,但是这个方法isGestureDetectionAvailable()返回了"False“。然而,我的设备能够检测到这些手势。

我已经根据Android开发者官方网站上提到的代码应用了一切。

这是我的Android Manifest Code。

代码语言:javascript
运行
复制
<application
 .....>
    <service
        android:name=".AccessibilityService"
        android:enabled="true"
        android:exported="true"
        android:label="My application"

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>

这是我的服务。

代码语言:javascript
运行
复制
public class AccessibilityService extends 
android.accessibilityservice.AccessibilityService {
private static final String TAG = 
AccessibilityService.class.getSimpleName();
@Override
public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
    Log.d("ACCEVENT", accessibilityEvent.toString());
}

@Override
public void onInterrupt() {
    Log.d("ACCEVENT", "onAccessibilityEvent Inturupt");
}

@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, null);
    }
}

@Override
public boolean onUnbind(Intent intent) {
    Log.d(TAG, "onUnbind " );
    return super.onUnbind(intent);
}

}

这是我的服务的XML代码

代码语言:javascript
运行
复制
<accessibility-service 
xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityFeedbackType="feedbackGeneric"
android:accessibilityFlags="flagDefault|flagRequestFingerprintGestures"
android:canRequestFingerprintGestures="true" />
EN

Stack Overflow用户

发布于 2019-11-12 05:21:32

你怎么知道你的设备支持手势?TalkBack可以和他们一起工作吗?否则,硬件供应商可能没有报告硬件检测手势。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58777519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档