123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- # -*- coding:utf-8 -*-
- import os, sys, time
- from ssat_sdk.uiautomator2 import AdbShell
- import os
- import subprocess
- '''
- // key codes,键名对应着键值
- public static final int KEYCODE_UNKNOWN = 0;
- public static final int KEYCODE_SOFT_LEFT = 1;
- public static final int KEYCODE_SOFT_RIGHT = 2;
- public static final int KEYCODE_HOME = 3;
- public static final int KEYCODE_BACK = 4;
- public static final int KEYCODE_CALL = 5;
- public static final int KEYCODE_ENDCALL = 6;
- public static final int KEYCODE_0 = 7;
- public static final int KEYCODE_1 = 8;
- public static final int KEYCODE_2 = 9;
- public static final int KEYCODE_3 = 10;
- public static final int KEYCODE_4 = 11;
- public static final int KEYCODE_5 = 12;
- public static final int KEYCODE_6 = 13;
- public static final int KEYCODE_7 = 14;
- public static final int KEYCODE_8 = 15;
- public static final int KEYCODE_9 = 16;
- public static final int KEYCODE_STAR = 17;
- public static final int KEYCODE_POUND = 18;
- public static final int KEYCODE_DPAD_UP = 19;
- public static final int KEYCODE_DPAD_DOWN = 20;
- public static final int KEYCODE_DPAD_LEFT = 21;
- public static final int KEYCODE_DPAD_RIGHT = 22;
- public static final int KEYCODE_DPAD_CENTER = 23;
- public static final int KEYCODE_VOLUME_UP = 24;
- public static final int KEYCODE_VOLUME_DOWN = 25;
- public static final int KEYCODE_POWER = 26;
- public static final int KEYCODE_CAMERA = 27;
- public static final int KEYCODE_CLEAR = 28;
- public static final int KEYCODE_A = 29;
- public static final int KEYCODE_B = 30;
- public static final int KEYCODE_C = 31;
- public static final int KEYCODE_D = 32;
- public static final int KEYCODE_E = 33;
- public static final int KEYCODE_F = 34;
- public static final int KEYCODE_G = 35;
- public static final int KEYCODE_H = 36;
- public static final int KEYCODE_I = 37;
- public static final int KEYCODE_J = 38;
- public static final int KEYCODE_K = 39;
- public static final int KEYCODE_L = 40;
- public static final int KEYCODE_M = 41;
- public static final int KEYCODE_N = 42;
- public static final int KEYCODE_O = 43;
- public static final int KEYCODE_P = 44;
- public static final int KEYCODE_Q = 45;
- public static final int KEYCODE_R = 46;
- public static final int KEYCODE_S = 47;
- public static final int KEYCODE_T = 48;
- public static final int KEYCODE_U = 49;
- public static final int KEYCODE_V = 50;
- public static final int KEYCODE_W = 51;
- public static final int KEYCODE_X = 52;
- public static final int KEYCODE_Y = 53;
- public static final int KEYCODE_Z = 54;
- public static final int KEYCODE_COMMA = 55;
- public static final int KEYCODE_PERIOD = 56;
- public static final int KEYCODE_ALT_LEFT = 57;
- public static final int KEYCODE_ALT_RIGHT = 58;
- public static final int KEYCODE_SHIFT_LEFT = 59;
- public static final int KEYCODE_SHIFT_RIGHT = 60;
- public static final int KEYCODE_TAB = 61;
- public static final int KEYCODE_SPACE = 62;
- public static final int KEYCODE_SYM = 63;
- public static final int KEYCODE_EXPLORER = 64;
- public static final int KEYCODE_ENVELOPE = 65;
- public static final int KEYCODE_ENTER = 66;
- public static final int KEYCODE_DEL = 67;
- public static final int KEYCODE_GRAVE = 68;
- public static final int KEYCODE_MINUS = 69;
- public static final int KEYCODE_EQUALS = 70;
- public static final int KEYCODE_LEFT_BRACKET = 71;
- public static final int KEYCODE_RIGHT_BRACKET = 72;
- public static final int KEYCODE_BACKSLASH = 73;
- public static final int KEYCODE_SEMICOLON = 74;
- public static final int KEYCODE_APOSTROPHE = 75;
- public static final int KEYCODE_SLASH = 76;
- public static final int KEYCODE_AT = 77;
- public static final int KEYCODE_NUM = 78;
- public static final int KEYCODE_HEADSETHOOK = 79;
- public static final int KEYCODE_FOCUS = 80; // *Camera* focus
- public static final int KEYCODE_PLUS = 81;
- public static final int KEYCODE_MENU = 82;
- public static final int KEYCODE_NOTIFICATION = 83;
- public static final int KEYCODE_SEARCH = 84;
- public static final int KEYCODE_MEDIA_PLAY_PAUSE= 85;
- public static final int KEYCODE_MEDIA_STOP = 86;
- public static final int KEYCODE_MEDIA_NEXT = 87;
- public static final int KEYCODE_MEDIA_PREVIOUS = 88;
- public static final int KEYCODE_MEDIA_REWIND = 89;
- public static final int KEYCODE_MEDIA_FAST_FORWARD = 90;
- public static final int KEYCODE_MUTE = 91;
- '''
- KeyDict = {"home":3, "back":4, "power":26, "up":19, "down":20, "left":21, "right":22, "ok":23}
- print KeyDict.keys()
- class AdbKeyevent():
- def __init__(self):
- pass
- def sendKey(self, keyName, times=1, duration=1):
- for ti in range(0, times):
- if KeyDict.has_key(keyName.lower()):
- self.keyevent(KeyDict[keyName])
- time.sleep(duration)
- else:
- print u"keyevent没有按键:", keyName
- break
- def getDeviceName(self):
- return "adbkeyevent"
- def getScriptName(self):
- return "adbkeyevent"
- def getKeyName(self):
- return KeyDict.keys()
- def close(self):
- self.operator.close()
- def getCurrentDeviceName(self):
- return self.getCurrentDeviceName()
- def keyevent(self, keycode):
- cmd = "adb shell input keyevent " + str(keycode)
- print cmd
- os.system(cmd)
- # ret = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- # print ret
- def startActivity(self, activity):
- cmd_head = "adb shell am start"
- cmd = cmd_head + " " + activity
- print "startActivity:",cmd
- process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- out = process.stdout.read()
- err = process.stderr.read()
- process.terminate()
- if err.lower().find("error") == 0:
- print "startActivity,",err
- return False
- else:
- print "startActivity"
- return True
- '''
- 执行android shell下的指令,例如: ls
- '''
- def excuteShell(self, command):
- cmd_head = "adb shell"
- cmd = cmd_head + " " + command
- print "excuteShell:", cmd
- process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- out = process.stdout.read()
- err = process.stderr.read()
- process.terminate()
- if err.find("error") == 0:
- print "excuteShell,", err
- return err
- else:
- print "excuteShell"
- return out
- '''
- 执行windows cmd的指令,例如:dir
- '''
- def excuteCmd(self, cmd):
- print "excuteCmd:", cmd
- process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- out = process.stdout.read()
- err = process.stderr.read()
- process.terminate()
- if err.find("error") == 0:
- print "excuteCmd,", err
- return err
- else:
- print "excuteCmd"
- return out
- if __name__ == "__main__":
- keyevent = AdbKeyevent()
- # keyevent.sendKey("ok", 2, 3)
- ret = keyevent.excuteCmd("adb root")
- print ret
- ret = keyevent.excuteShell("ls /storage")
- print ret
|