I'm trying call a method present in a class that extends AccessibilityService
from another class that extends Service
this way:
MyAccessibility access = new MyAccessibility();
access.doAction(); // doAction(); is the method called
but nothing happens, already if this is called inside MyAccessibility
(AccessibilityService
class) all works fine.
public class MyAccessibility extends AccessibilityService {
@Override
protected void onServiceConnected() {
super.onServiceConnected();
System.out.println("Accessibility was connected!");
doAction();
}
public void doAction(){
performGlobalAction(GLOBAL_ACTION_RECENTS);
}
}
Then how i can call any method of MyAccessibility
from a another service?
EDIT:
I also tried change doAction()
to be static
, but performGlobalAction
cannot be.
The solution is access MyAccessibility
by a singleton:
public class MyAccessibility extends AccessibilityService {
public static MyAccessibility instance;
@Override
protected void onServiceConnected() {
super.onServiceConnected();
System.out.println("Accessibility was connected!");
instance = this;
}
public void doAction(){
performGlobalAction(GLOBAL_ACTION_RECENTS);
}
}
And call doAction();
from your service like this:
MyAccessibility.instance.doAction();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With