Невозможно выполнить привязку к AccessibilityService, потому что это onBind()
метод, объявленный как final.НО, вы можете использовать его экземпляр, сохранив его в статическом поле.
В вашем MyAccessbilityService классе:
1.Создайте статическое поле типа вашего AccessibilityService
private static MyAccessibilityService myAccessibilityServiceInstance;
2. Инициализировать его в методе onServiceConnected ()
@Override
protected void onServiceConnected() {
super.onServiceConnected();
myAccessibilityServiceInstance = this;
}
3. Очистить, когда AccessibilityService отключен в методе onUnbind ():
@Override
public boolean onUnbind(Intent intent) {
myAccessibilityServiceInstance = null;
return super.onUnbind(intent);
}
4. Создайте геттер для своего экземпляра и давайте добавим аннотацию @Nullable, поскольку мы не знаем, в какой период жизненного цикла сервиса он будет называться
@Nullable
public static MyAccessibilityService getInstance(){
return myAccessibilityServiceInstance;
}
и, наконец, в вашей деятельности или там, где вам это нужно.:
MyAccessibilityService accessibilityService = MyAccessibilityService .getInstance();
if(accessibilityService != null){
//do smth here:
}
Реализовано в моем приложении, до сих пор отлично работает.Спасибо alanv в своем ответе https://stackoverflow.com/a/12557673/5502121