我正在尝试创建一个可以侦听指纹手势滑动的辅助功能服务,但是当我尝试检测手势检测是否可用时(使用isGestureDectionAvailable
方法),我的应用程序崩溃并给了我一个null对象错误,声称getFingerprintGestureController()
返回null。
以下是我服务的onCreate
方法中的代码片段,似乎导致了错误(Kotlin代码,因此 fingerprintGestureController 是getFingerprintGestureController()
调用):
override fun onCreate() {
super.onCreate()
gestureController = fingerprintGestureController
gestureDetectionAvailable = gestureController.isGestureDetectionAvailable
if (!gestureDetectionAvailable) {
return
}
…
}
以下错误:
java.lang.NullPointerException:尝试调用接口方法' boolean android.accessibilityservice.IAccessibilityServiceConnection.isFingerprintGestureDetectionAvailable()'在空对象引用...
知道getFingerprintGestureController()
为什么不返回控制器对象?我在Pixel上进行了测试,并在设置中授予了应用访问权限。
答案 0 :(得分:3)
所以我弄清楚我做错了什么。我只能在连接服务后致电getFingerprintGestureController()
。这意味着我需要将问题代码移到onServiceConnected()
方法。
此外,onServiceConnected()
仅在用户在设置菜单中启用可访问性服务的权限后才会调用。一旦用户在那里启用它,服务就会自动启动。