我有一个AccessibilityService
,它监听特定的应用程序打开并在检测到它时作出反应,当检测到该问题时与它无关:
public class AccServ extends AccessibilityService {
static final String TAG = "AccServ";
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if(event.getPackageName().equals("com.test.package"))
// Do stuff
}
@Override
public void onInterrupt() {
Log.v(TAG, "onInterrupt");
}
@Override
protected void onServiceConnected() {
super.onServiceConnected();
ServiceMan.Start(getApplicationContext());
Log.v(TAG, "onServiceConnected");
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.flags = AccessibilityServiceInfo.DEFAULT;
info.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
info.packageNames = new String[]{"com.test.package"};
setServiceInfo(info);
}
}
软件包com.test.package
可以通过2个意图启动:com.test.package/main
和com.test.package/secondary
。
简而言之,我需要将这两个意图分开,因为我只希望它在调用主意图时做出反应。
我似乎无法从AccessibilityEvent获得此信息。我还考虑过手动检查打开的应用程序的当前意图,但是由于我不共享签名,因此我无法访问该信息。我无法控制正在听的应用程序。
感谢您的帮助。