无障碍服务的意图分离

时间:2018-08-08 06:49:31

标签: java android accessibility accessibilityservice

我有一个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/maincom.test.package/secondary

简而言之,我需要将这两个意图分开,因为我只希望它在调用主意图时做出反应。

我似乎无法从AccessibilityEvent获得此信息。我还考虑过手动检查打开的应用程序的当前意图,但是由于我不共享签名,因此我无法访问该信息。我无法控制正在听的应用程序。

感谢您的帮助。

0 个答案:

没有答案