|
97 / 4 / 0
Регистрация: 09.05.2015
Сообщений: 70
|
|
Отслеживание событий в другом Android-приложении16.02.2017, 17:08. Показов 3752. Ответов 6
Метки нет (Все метки)
У меня возникла необходимость отслеживать определенное событие в другом Андроид-приложении, которое я вызываю из своего рабочего приложения.
Дело в том, что я вызываю из своего приложения это другое приложение (WhatsApp, Viber и др.) с помощью создания новой Активити и соответствующего Интента. В открывшемся приложении окно "Сообщения" уже заполнено параметрами передаваемого сообщения из моего рабочего приложения. Мне нужно отследить, что пользователь действительно отослал мое сообщение, которое высветилось ему в соответствующем мессенджере, нажав на кнопку "Переслать". Я понимаю, что нет прямого способа отследить это событие, т.к. управление активностью уже передано соответствующему мессенджеру. Но ведь существует же возможность в фоновом режиме отслеживать процессы, которые происходят в другом приложении из текущего приложения у всяких мониторящих приложений. Наподобие того, как это делает монитор ADB, выводя в консоль LogCat все события из "прослушиваемого" приложения. Я предполагаю отследить подобным образом, что возвращает мессенджер в случае нажатия на кнопку "Переслать". Так, мне необходимо научиться каким-то образом мониторить соответствующий мессенджер на предмет возникновения события нажатия на кнопку "Переслать". Для этого мне необходимо как-то "прослушивать" вывод параметров из другого Андроид-приложения подобно тому, как это делает программа-монитор ADB, выводя "прослушиваемые данные" в окно с протоколом LogCat. Событие нажатия на кнопку "Переслать" я предполагаю отслеживать путем сравнения того, что возвращает мое рабочее приложение, "прослушивая" мессенджер подобно тому как это делает монитор ADB. Таким образом, я предполагаю анализировать полученный в моем рабочем мониторящем приложении LogCat-подобный протокол на предмет наличия в нем того события, которое соответствует нажатию на кнопку "Переслать" в "прослушиваемом" мессенджере. Подскажите, пожалуйста, каким образом можно реализовать эту задумку? Может быть есть какие-то уже готовые решения на эту тему, которые я могла бы интегрировать в свое приложение?
0
|
|
| 16.02.2017, 17:08 | |
|
Ответы с готовыми решениями:
6
Отслеживание событий на Windows приложении без формы Отслеживание событий в word
|
|
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
|
|
| 16.02.2017, 17:13 | |
|
InessaSuper, да вы наивны. Серьезные приложения чистят логи свои в LogCat. И ставят флаг debugguble = false в релизных версиях. Так что увидеть что-то в логах очень сложно. И даже если там будет какая-то активность, никто не даст гарантии что это именно она и что она не поменяется в следующих обновлениях.
0
|
|
|
97 / 4 / 0
Регистрация: 09.05.2015
Сообщений: 70
|
|
| 16.02.2017, 18:11 [ТС] | |
|
О чем-то подобном я подозревала.
Тогда я немного переформулирую постановку задачи. В нужных для "прослушивания" мне мессенджерах вызов определенных Активностей с соответствующими им визуальными формами-страницами определяет то, что мое сообщение было отправлено. Таким образом, в качестве признака того, что мое сообщение отправлено через мессенджер, может служить то, что в нем "открылась" форма с соответствующей Активностью. Скажите, каким образом я могу организовать процесс того, что мое рабочее приложение сможет отслеживать создание (открытие) Активностей с соответствующими формами в заданном приложении?
0
|
|
|
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
|
|
| 16.02.2017, 18:46 | |
|
InessaSuper, я слегка ошибался. Сам Viber логи не сыплет но системные процессы показывают. Но это на эмуляторе.
Примерно так выглядят логи если слегка их почистить. Кликните здесь для просмотра всего текста
02-16 10:36:55.780 594-1152/system_process I/ActivityManager: START u0 {act=android.intent.action.SEND typ=text/plain flg=0x1 pkg=com.viber.voip cmp=com.viber.voip/.WelcomeShareActivity (has clip) (has extras)} from uid 10061 on display 0
02-16 10:36:55.781 594-1152/system_process V/WindowManager: addAppToken: AppWindowToken{3aab98aa token=Token{628ef95 ActivityRecord{2738f34c u0 com.viber.voip/.WelcomeShareActivity t46}}} to stack=1 task=46 at 1 02-16 10:36:55.797 594-939/system_process I/ActivityManager: START u0 {act=android.intent.action.SEND typ=text/plain pkg=com.viber.voip cmp=com.viber.voip/.HomeActivity (has clip) (has extras)} from uid 10082 on display 0 02-16 10:36:55.799 594-939/system_process V/WindowManager: addAppToken: AppWindowToken{3175f011 token=Token{da7f838 ActivityRecord{10ffc9b u0 com.viber.voip/.HomeActivity t48}}} to stack=1 task=48 at 0 02-16 10:36:55.804 594-632/system_process V/WindowManager: Adding window Window{31559650 u0 Starting com.viber.voip} at 4 of 10 (after Window{3b61f74 u0 com.github.footballnews/com.github.footballnews.ui.newslist.view .MainActivity}) 02-16 10:36:55.849 594-1866/system_process I/ActivityManager: START u0 {cmp=com.viber.voip/.HomeActivity} from uid 10082 on display 0 02-16 10:36:55.868 594-1152/system_process V/WindowManager: Adding window Window{2ea1ff81 u0 com.viber.voip/com.viber.voip.HomeActivity} at 4 of 11 (before Window{31559650 u0 Starting com.viber.voip}) 02-16 10:36:55.869 594-1120/system_process I/ActivityManager: START u0 {act=com.viber.voip.action.ACTION_FORWAR D flg=0x10000000 cmp=com.viber.voip/.messages.ui.forward.ForwardActivity (has extras)} from uid 10082 on display 0 02-16 10:36:55.876 594-1120/system_process V/WindowManager: addAppToken: AppWindowToken{192d8a14 token=Token{19a37c67 ActivityRecord{15994826 u0 com.viber.voip/.messages.ui.forward.ForwardActivity t48}}} to stack=1 task=48 at 1 02-16 10:36:55.876 594-1120/system_process V/WindowManager: Adding window Window{31559650 u0 Starting com.viber.voip} at 5 of 11 (after Window{2ea1ff81 u0 com.viber.voip/com.viber.voip.HomeActivity}) 02-16 10:36:55.941 4514-4514/com.viber.voip W/FragmentManager: moveToState: Fragment state for ContactsFragment{113ab7a1 #0 id=0x7f110113 android:switcher:2131820819:1} not updated inline; expected state 3 found 2 02-16 10:36:55.949 4514-4514/com.viber.voip W/FragmentManager: moveToState: Fragment state for PhoneFragmentWithContactsSubsearch{35da6 16f #1 id=0x7f110113 android:switcher:2131820819:2} not updated inline; expected state 3 found 2 02-16 10:36:56.461 594-2050/system_process V/WindowManager: Adding window Window{26d1a044 u0 com.viber.voip/com.viber.voip.messages.ui.forward.Forwa rdActivity} at 5 of 12 (before Window{31559650 u0 Starting com.viber.voip}) 02-16 10:36:56.685 594-632/system_process I/ActivityManager: Displayed com.viber.voip/.messages.ui.forward.ForwardActivity: +625ms (total +903ms) 02-16 10:37:00.293 594-1120/system_process I/ActivityManager: START u0 {act=com.viber.voip.action.CONVERSATION cmp=com.viber.voip/.messages.ui.ConversationActivity (has extras)} from uid 10082 on display 0 02-16 10:37:00.295 594-1120/system_process V/WindowManager: addAppToken: AppWindowToken{3ff15261 token=Token{336531c8 ActivityRecord{119ee26b u0 com.viber.voip/.messages.ui.ConversationActivity t48}}} to stack=1 task=48 at 2 02-16 10:37:00.369 594-652/system_process V/WindowManager: Adding window Window{eb8ec99 u0 com.viber.voip/com.viber.voip.messages.ui.ConversationA ctivity} at 6 of 12 (after Window{26d1a044 u0 com.viber.voip/com.viber.voip.messages.ui.forward.Forwa rdActivity}) 02-16 10:37:00.861 594-632/system_process I/ActivityManager: Displayed com.viber.voip/.messages.ui.ConversationActivity: +558ms тут много всего но это полный путь того, как засылается интент в вайбер и он уходит выбранному контакту. Это лишь голая информация, я не могу точно сказать что именно так будет всегда, но возможно по пути WelcomeShareActivity->HomeActivity->ForwardActivity->ConversationActivity можно сказать, что сообщение было отправлено. Но опять же это эмулятор, на устройстве реальном нерутованом вообще таких логов может не быть. Это нужно проверять.
1
|
|
|
97 / 4 / 0
Регистрация: 09.05.2015
Сообщений: 70
|
||||||
| 16.02.2017, 19:26 [ТС] | ||||||
|
Хорошо.
В качестве отправной точки примем, что для мессенджера Viber мне нужно отследить возникновение Активности ConversationActivity. Насколько я понимаю, для этих целей нужно добавить в манифест-файл разрешение android.permission.GET_TASKS и использовать классы MonitorService и ActivityManager для отслеживания Активности.
0
|
||||||
| 16.02.2017, 19:49 | |
|
Не по теме: Проще свой мессенджер написать...
0
|
|
|
97 / 4 / 0
Регистрация: 09.05.2015
Сообщений: 70
|
|
| 16.02.2017, 19:57 [ТС] | |
|
Мне нужно решить описанную мной задачу.
Поэтому вопрос заданный выше остается в силе.
0
|
|
| 16.02.2017, 19:57 | |
|
Помогаю со студенческими работами здесь
7
BX отслеживание событий инфоблока Глобальное отслеживание событий в С# Отслеживание событий вне окна Отслеживание событий другого приложения
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|