Я думаю, что это связано с тем фактом, что обезьяна посылает различные коды ключей , включая коды ключей для аппаратных ключей, которые могут даже не существовать на тестируемом устройстве .
Я испыталаналогичная проблема с использованием обезьяны и исследование ее путем предоставления опций -v -v (повторяющееся -v увеличивает уровень отладки) и замедления скорости с помощью опции --throttle, которую я также экспериментировал, чтобы найти небольшое количество действий, которыезаставил это произойти.
Моя командная строка закончилась чтением:
adb shell monkey -p package.undertest.com -s 214765 --throttle 500 -v -v 130
Это показало, что незадолго до запуска медиаплеера я записал следующее:
Sleeping for 500 milliseconds
:SendKey (ACTION_DOWN): 90 // KEYCODE_FORWARD
:SendKey (ACTION_UP): 90 // KEYCODE_FORWARD
Затем я смог подтвердить, что KEYCODE_FORWARD действительно запускает мой медиаплеер (doubleTwist) на моем Galaxy S, выполнив следующую команду после того, как я остановил медиаплеер:
adb shell input keyevent 90
Обратите внимание, что 90 - этоКод ключа указан в журнале выше.
Изменив мою командную строку на обезьяну, добавьте «--pct-nav 0», которая успешно остановила его, начиная сe media player.
Я не знаю, может ли это быть другой код ключа в вашем случае, поэтому вам, возможно, придется поэкспериментировать, и это может не соответствовать вашим целям при использовании обезьяны, чтобы отключить все основныенавигационные события, установив --pct-nav 0.