1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/guopengchao-RobRedPack

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Принцип работы с «красными пакетами»:

Класс вспомогательной службы MyAccessibilityService расширяет AccessibilityService

Переписывается метод onAccessibilityEvent для отслеживания изменений на телефоне.

  1. Отслеживание уведомлений в панели: Отслеживаются сообщения в панели уведомлений: AccessibilityEvent.getEventType == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED; При наличии сообщения происходит переход в панель уведомлений: Notification notification = (Notification) event.getParcelableData(); PendingIntent pendingIntent = notification.contentIntent; Выполняется попытка отправки намерения: try { pendingIntent.send(); MyAccessibilityService.canGet = true; } catch (Exception e) { e.printStackTrace(); }

  2. Переход в чат: Отслеживается изменение окна: AccessibilityEvent.getEventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED; После перехода сканируется текущий макет для поиска узла «красного пакета».

Метод поиска узла «красного пакета»:

  1. Не удалось определить по изображению.

  2. Не удалось определить по изображению.

  3. Находится последний узел «красного пакета» и открывается. // Имитация события клика public void performClick(AccessibilityNodeInfo nodeInfo) { Config.setFlag(nodeInfo.getPackageName().toString()); if (nodeInfo == null) { return; } switch (mFlag) {

        *case Config.WX:*
            *if (nodeInfo.isClickable()) {*
                *nodeInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK);*
             *} else {*
                 *performClick(nodeInfo.getParent());*
             *}*
            *break;*
        *case Config.QQ:*
            *if (null == nodeInfo.getText() || nodeInfo.getText().toString().isEmpty()) {*
               *nodeInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK);*
               *AccessibilityNodeInfo nodeInfoSend = getRootInActiveWindow();*
               *if (nodeInfoSend == null) {*
                   *return;*
                 *}*
               *AccessibilityNodeInfo sendNode = findNodeInfosByText(nodeInfoSend, «отправить»);*
               *if (null != sendNode) {*
                  *performClick(sendNode);*
               } else {*
                  *canGet = true;*
               }*
    
           *} else {*
              *«отправить».equals(nodeInfo.getText().toString())?*
              *nodeInfo.performAction(AccessibilityNodeInfo.ACTION-CLICK):*
              *performClick(nodeInfo.getParent());*
         *}*
    
         *break;*
        *case Config.QQ_ZONE:*
           *if (nodeInfo.isClickable()) {*
               *nodeInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK);*
           } else {*
               *performClick(nodeInfo.getParent());*
           }*
           *break;*
    
       *default:*
    
          *break;*
    *}*

    }

  4. Возврат: Опущен. Рекомендуется самостоятельно ознакомиться с кодом.

##Примечание Представлен только принцип работы, для ознакомления с конкретной логикой рекомендуется обратиться к коду. (Рекомендуется установить задержку возврата на главную страницу не менее 200 миллисекунд (на самом деле 400, так как нажатие клавиши «Домой» два раза подряд занимает 200 мс каждый раз). В первый раз при нажатии на приложение WeChat для получения красного пакета не отображается структура макета. После нажатия дважды клавиши «Домой», чтобы вернуться на главный экран, а затем снова войти в WeChat, структура макета будет отображаться. Этот подход не подходит для коллективного одновременного получения красных пакетов. Вы обнаружите, что задержка очень велика, поэтому рекомендуется закрыть программу и получить красный пакет вручную. Если у вас есть другие хорошие идеи, пожалуйста, поделитесь ими, давайте учиться вместе и двигаться вперёд.) (Красные пакеты QQ Space не реализованы)

##Объяснение Этот код предназначен только для справки и обучения, строго запрещено использовать его в коммерческих целях.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Освоение (кража) красных конвертов WeChat, обычных красных конвертов QQ и красных конвертов с кодовым словом QQ, полезное средство. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/guopengchao-RobRedPack.git
git@api.gitlife.ru:oschina-mirror/guopengchao-RobRedPack.git
oschina-mirror
guopengchao-RobRedPack
guopengchao-RobRedPack
master