Почему служба специальных возможностей не работает для действий пользователя? - PullRequest
0 голосов
/ 25 ноября 2018
@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);

Я использую этот код для симуляции нажатия кнопки поиска WhatsApp, но когда я открыл окно WhatsApp на 25-11-2018 на 4: 39 , ничего не произошло.Код работал нормально, когда не было времени.Но проблема была в том, что при каждом открытии WhatsApp нажимали кнопку поиска.Как нажать на кнопку поиска только тогда, когда WhatsApp открыт в определенное время?

1 Ответ

0 голосов
/ 25 ноября 2018

Вы можете преобразовать в LocalDate

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

и использовать равно метод для конкретного LocalDate

Сравнениеthis LocalDate с другой гарантией того, что дата совпадает.

Сравниваются только объекты типа LocalDate, другие типы возвращают false.

...