Add helper functions for adb -e/-d to adb.py.
Bug: http://b/22946322 Change-Id: I847f561d617b17f4e6323e0abb46dd270d041782
This commit is contained in:
@@ -110,6 +110,46 @@ def get_device(serial=None, product=None):
|
|||||||
|
|
||||||
return _get_unique_device(product)
|
return _get_unique_device(product)
|
||||||
|
|
||||||
|
|
||||||
|
def _get_device_by_type(flag):
|
||||||
|
with open(os.devnull, 'wb') as devnull:
|
||||||
|
subprocess.check_call(['adb', 'start-server'], stdout=devnull,
|
||||||
|
stderr=devnull)
|
||||||
|
try:
|
||||||
|
serial = subprocess.check_output(['adb', flag, 'get-serialno']).strip()
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
raise RuntimeError('adb unexpectedly returned nonzero')
|
||||||
|
if serial == 'unknown':
|
||||||
|
raise NoUniqueDeviceError()
|
||||||
|
return _get_device_by_serial(serial)
|
||||||
|
|
||||||
|
|
||||||
|
def get_usb_device():
|
||||||
|
"""Get the unique USB-connected AndroidDevice if it is available.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
NoUniqueDeviceError:
|
||||||
|
0 or multiple devices are connected via USB.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
An AndroidDevice associated with the unique USB-connected device.
|
||||||
|
"""
|
||||||
|
return _get_device_by_type('-d')
|
||||||
|
|
||||||
|
|
||||||
|
def get_emulator_device():
|
||||||
|
"""Get the unique emulator AndroidDevice if it is available.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
NoUniqueDeviceError:
|
||||||
|
0 or multiple emulators are running.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
An AndroidDevice associated with the unique running emulator.
|
||||||
|
"""
|
||||||
|
return _get_device_by_type('-e')
|
||||||
|
|
||||||
|
|
||||||
# Call this instead of subprocess.check_output() to work-around issue in Python
|
# Call this instead of subprocess.check_output() to work-around issue in Python
|
||||||
# 2's subprocess class on Windows where it doesn't support Unicode. This
|
# 2's subprocess class on Windows where it doesn't support Unicode. This
|
||||||
# writes the command line to a UTF-8 batch file that is properly interpreted
|
# writes the command line to a UTF-8 batch file that is properly interpreted
|
||||||
|
|||||||
Reference in New Issue
Block a user