12

Android アプリをテストするためにエクササイザー モンキーを実行しています。アプリの一部として、単語の発音を示すメディア ファイルを再生します。ファイルを Android のミュージック プレーヤーで読み取れないディレクトリに配置しました。ただし、エクササイザーのサルは、音楽プレーヤーをアクティブにしているように見える一連のイベントをスローし、テスト中に別の mp3 ファイル (私のアプリからのものではない) の先頭を繰り返し再生します。これはどのように行われているのでしょうか。

追加情報: アプリで MediaPlayer を無効にしても、問題は引き続き発生します。FWIW、これは、音を生成するコマンド (最後のコマンド) に至るまでの、エクササイザー モンキーからの一連の出力です。

   // Rejecting start of Intent { act=android.intent.action.VIEW dat=http://www.myurl.com/ cmp=com.android.browser/.BrowserActivity } in package com.android.browser
:Sending Pointer ACTION_DOWN x=437.0 y=183.0
:Sending Pointer ACTION_UP x=450.0 y=158.0
:Sending Pointer ACTION_DOWN x=5.0 y=58.0
:Sending Pointer ACTION_UP x=-4.0 y=58.0
:Sending Pointer ACTION_MOVE x=2.0 y=-2.0 <=== sound generated from this one

これは、問題の時点​​での logcat の出力です。

I/AudioService(  101):  AudioFocus  requestAudioFocus() from android.media.AudioManager@40518af0com.android.music.MediaPlaybackService$3@405218f8
I/AudioService(  101):   Remote Control   registerMediaButtonEventReceiver() for ComponentInfo{com.google.android.music/com.android.music.MediaButtonIntentReceiver}
W/AudioFlinger(   68): write blocked for 159 msecs, 26 delayed writes, thread 0xea00
D/AudioHardwareQSD(   68): AudioHardware pcm playback is going to standby.
D/dalvikvm(  319): GC_EXPLICIT freed 7K, 51% free 2839K/5767K, external 1625K/2137K, paused 74ms
4

2 に答える 2

7

これは、テスト対象のデバイスには存在しない可能性があるハードウェア キーのキー コードを含むさまざまなキー コードをサルが送信するという事実に関係していると思います。

私はサルを使用して同様の問題を経験し、-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 が Galaxy S でメディア プレーヤー (doubleTwist) を開始することを確認できました。

adb shell input keyevent 90

90 は上記のログにリストされているキーコードであることに注意してください。

コマンドラインをサルに変更して「--pct-nav 0」を追加すると、メディアプレーヤーの起動が正常に停止しました。

あなたのケースでは別のキーコードである可能性があるかどうかはわかりません。そのため、実験する必要があるかもしれません.モンキーを使用して --pct-nav 0 を設定してすべての基本的なナビゲーションイベントをオフにするという目的には合わないかもしれません.

于 2011-10-27T13:56:13.167 に答える
0

Does your app have any features that launch other services or applications that play music? For example if you have a button that launches an intent to change the ringer volume the monkey would press that causing ringer noises. (In my experience the monkey with default settings goes outside the application and changes ringer settings anyway)

于 2011-07-27T16:44:49.017 に答える