简体   繁体   English

为什么辅助功能服务无法执行用户操作?

[英]Why are accessibility service not working to take user actions?

@Override
    public void onAccessibilityEvent(final AccessibilityEvent event) {

        Date date = new Date(event.getEventTime());
        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy hh:mm");
        String time = format.format(date);
        String reqTime = "25/11/2018 04:39";
        if (reqTime.equals(time)) {
            Log.d("MyAccessibilityService", "onAccessibilityEvent");

            if (getRootInActiveWindow() == null) {
                return;
            }


            AccessibilityNodeInfoCompat rootInActiveWindow = AccessibilityNodeInfoCompat.wrap(getRootInActiveWindow());
            //Inspect app elements if ready

            //Search bar is covered with textview which need to be clicked
            List<AccessibilityNodeInfoCompat> clickOnQuestionMark = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.whatsapp:id/menuitem_search");
            if (clickOnQuestionMark.isEmpty() || clickOnQuestionMark == null) {
                return;
            }
            AccessibilityNodeInfoCompat clickMark = clickOnQuestionMark.get(0);
            clickMark.performAction(AccessibilityNodeInfoCompat.ACTION_CLICK);

I am using this code for simuating clicking whatsapp search button, but when I opened whatsapp window on 25-11-2018 at 4:39 nothing happened. 我正在使用此代码来模拟单击whatsapp搜索按钮,但是当我在201811254:39打开whatsapp窗口时,没有任何反应。 The code was working fine when no time was alloted. 当没有时间分配时,代码运行良好。 But problem was that everytime whatsapp was opened the search button would get clicked. 但是问题是每次打开whatsapp时都会单击搜索按钮。 How to click on the search button only when whatsapp is opened at a specific time? 仅在特定时间打开whatsapp时,如何单击搜索按钮?

You can convert to LocalDate 您可以转换LocalDate

LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

and use equals method to specific LocalDate 并使用equals方法指定特定的LocalDate

Compares this LocalDate with another ensuring that the date is the same. 将此LocalDate与另一个进行比较,以确保日期相同。

Only objects of type LocalDate are compared, other types return false. 仅比较LocalDate类型的对象,其他类型返回false。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM