java.lang.IllegalStateException : android.accessibilityservice.AccessibilityService.getSystemService(AccessibilityService.java:1602)

标签 java android kotlin accessibilityservice

我在应用程序中使用辅助功能服务向用户读出自定义文本。 这是我的服务类别:

class GlobalAccessibilityService: AccessibilityService() {
    override fun onInterrupt() {
        Log.i("Accessibility","onInterrupt()")
    }

    override fun onAccessibilityEvent(event: AccessibilityEvent?) {
        Log.i("Accessibility","onAccessibilityEvent() & Even is: "+event.toString())
    }
}

我已经在 Manifest 的 Service 标签下声明了它,并且也有相应的 xml 文件。

这就是我在 Activity 类中调用服务的方式:




     var mService = GlobalAccessibilityService()

       var manager: AccessibilityManager = mService.getSystemService(Context.ACCESSIBILITY_SERVICE) 

                    if (manager.isEnabled){
                        var event: AccessibilityEvent = AccessibilityEvent.obtain()
                        event.eventType = AccessibilityEvent.TYPE_ANNOUNCEMENT
                        event.text.add("This is a test for Accessibility Service Announcement")
                        manager.sendAccessibilityEvent(event)
                    }

但是,我收到以下错误:


     java.lang.IllegalStateException: System services not available to Activities before onCreate()
            at android.accessibilityservice.AccessibilityService.getSystemService(AccessibilityService.java:1602)

请求帮助! 谢谢。

最佳答案

看起来您正在调用下面编写的 onCreate() 方法之前的内容。 您在哪里调用以下代码? :

var mService = GlobalAccessibilityService()

   var manager: AccessibilityManager = mService.getSystemService(Context.ACCESSIBILITY_SERVICE) 

                if (manager.isEnabled){
                    var event: AccessibilityEvent = AccessibilityEvent.obtain()
                    event.eventType = AccessibilityEvent.TYPE_ANNOUNCEMENT
                    event.text.add("This is a test for Accessibility Service Announcement")
                    manager.sendAccessibilityEvent(event)
                }

关于java.lang.IllegalStateException : android.accessibilityservice.AccessibilityService.getSystemService(AccessibilityService.java:1602),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62378583/

相关文章:

kotlin - Kotlin对象表达式无法按预期工作

android - 在 fragment 容器上调用 FragmentTransaction.replace() 时会发生什么?

java - 使用通用方法实现的选择排序 - 错误结果

java - Android Studio/Robolectric测试随机失败

java - Android GC_CONCURRENT 和音箱应用程序开发

java - Netbeans 6.8 : Lib-Import works, 但编译时为 "package does not exist"

java - Android检查一个 View 是否有标签

Android:使用 LayoutInflater 添加 View

java - Android - 将 View 从 Activity 传递到 AsyncTask 类

android - 如何将可变列表传递给 bundle ?