我正在尝试创建一个监听指纹手势滑动的可访问性服务,但是当我尝试检测手势检测是否可用时(使用isGestureDectionAvailable
方法),我的应用程序崩溃,并给我一个空对象错误,声称getFingerprintGestureController()
返回空。
下面是我的服务的onCreate
方法中似乎导致错误的代码片段(Kotlin代码,所以fingerprintGestureController是getFingerprintGestureController()
调用):
override fun onCreate() {
super.onCreate()
gestureController = fingerprintGestureController
gestureDetectionAvailable = gestureController.isGestureDetectionAvailable
if (!gestureDetectionAvailable) {
return
}
…
}
以及随后出现的错误:
java.lang.NullPointerException:尝试在空对象引用…上调用接口方法的布尔值android.accessibilityservice.IAccessibilityServiceConnection.isFingerprintGestureDetectionAvailable()‘
知道为什么getFingerprintGestureController()
没有返回控制器对象吗?我正在Pixel上测试,并已在设置中授予应用程序辅助功能访问权限。
发布于 2018-06-08 07:23:06
所以我找出了我做错了什么。只有在服务连接之后,我才能调用getFingerprintGestureController()
。这意味着我需要将问题代码移到onServiceConnected()
方法中。
此外,只有当用户在设置菜单中启用可访问性服务时,才会调用onServiceConnected()
。一旦用户在那里启用了它,服务就会自动启动。
https://stackoverflow.com/questions/50749906
复制相似问题