#!/usr/bin/env monkeyrunner # Imports the monkeyrunner modules used by this program from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice import time import random # Connects to the current device, returning a MonkeyDevice object device = MonkeyRunner.waitForConnection() # sets a variable with the package's internal name package = 'com.android.music' # sets a variable with the name of an Activity in the package activity = 'com.android.music.MediaPlaybackActivity' # sets the name of the component to start runComponent = package + '/' + activity # Runs the component device.startActivity(component=runComponent) def play(): print "push play" device.press('KEYCODE_MEDIA_PLAY','DOWN_AND_UP') def pause(): print "push pause" device.press('KEYCODE_MEDIA_PAUSE', 'DOWN_AND_UP') def skip_next(n): print "skip the next", n, "tracks" for x in range(n): device.press('KEYCODE_MEDIA_NEXT', 'DOWN_AND_UP') def skip_previous(n): print "skip backwards", n, "tracks" for x in range(n): device.press('KEYCODE_MEDIA_PREVIOUS', 'DOWN_AND_UP') def ff(n): print "fast forward for", n, "seconds" if n < 1: device.press('KEYCODE_MEDIA_FAST_FORWARD', 'DOWN_AND_UP') else: device.press('KEYCODE_MEDIA_FAST_FORWARD', 'DOWN') time.sleep(n) device.press('KEYCODE_MEDIA_FAST_FORWARD', 'UP') def rw(n): print "rewind for", n, "seconds" if n < 1: device.press('KEYCODE_MEDIA_REWIND', 'DOWN_AND_UP') else: device.press('KEYCODE_MEDIA_REWIND', 'DOWN') time.sleep(n) device.press('KEYCODE_MEDIA_REWIND', 'UP') ## main flow starts here actions = ['play', 'pause', 'skip_next', 'skip_prev', 'ff', 'rw', 'wait'] start_time = time.time() run_time = 60 * 15 end_time = start_time + run_time while True: action_id = random.randint(1, 10) action_time = random.randint(1, 15) if action_id == 1: play() elif action_id == 2: pause() elif action_id == 3: skip_next(action_time) elif action_id == 4: skip_previous(action_time) elif action_id == 5: pass #ff(action_time) elif action_id == 6: pass #rw(action_time) elif action_id == 7: time.sleep(action_time) else: pass time.sleep(1) if time.time() > end_time: break pause()