ITestDevice

public interface ITestDevice
implements INativeDevice

com.android.tradefed.device.ITestDevice


为 ddmlib IDevice 提供可靠且稍高级别的 API。

重试设备命令的次数可配置,并为无响应的设备提供设备恢复接口。

摘要

嵌套类

class ITestDevice.ApexInfo

用于存储单个 APEX 相关信息的简单结构类

class ITestDevice.MountPointInfo

用于存储有关单个装载点信息的简单结构体类

公共方法

abstract boolean canSwitchToHeadlessSystemUser()

返回是否允许切换到无头系统用户。

abstract boolean checkConnectivity()

检查设备是否已连接到网络。

abstract boolean clearErrorDialogs()

尝试关闭设备界面上当前显示的任何错误对话框。

abstract void clearLastConnectedWifiNetwork()

清除上次连接的 Wi-Fi 网络。

abstract boolean connectToWifiNetwork( wifiSsidToPsk)

连接到 WLAN 网络。

abstract boolean connectToWifiNetwork( wifiSsidToPsk, boolean scanSsid)

连接到 WLAN 网络。

abstract boolean connectToWifiNetwork(String wifiSsid, String wifiPsk)

连接到 WLAN 网络。

abstract boolean connectToWifiNetwork(String wifiSsid, String wifiPsk, boolean scanSsid)

连接到 WLAN 网络。

abstract boolean connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk, boolean scanSsid)

connectToWifiNetwork(String, String) 的一种变体,仅在设备当前没有网络连接时连接。

abstract boolean connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk)

connectToWifiNetwork(String, String) 的一种变体,仅在设备当前没有网络连接时连接。

abstract int createUser(String name)

使用给定的名称和默认标志 0 创建用户。

abstract int createUser(String name, boolean guest, boolean ephemeral)

使用给定的名称和提供的标志创建用户

abstract int createUser(String name, boolean guest, boolean ephemeral, boolean forTesting)

使用给定的名称和提供的标志创建用户

abstract int createUserNoThrow(String name)

使用给定的名称和默认标志 0 创建用户。

abstract void deregisterDeviceActionReceiver(IDeviceActionReceiver deviceActionReceiver)

移除已注册的 IDeviceActionReceiver

abstract void disableKeyguard()

尝试停用锁屏。

abstract boolean disableNetworkMonitor()

停用设备上的网络监控。

abstract boolean disconnectFromWifi()

断开与 Wi-Fi 网络的连接。

abstract boolean doesFileExist(String deviceFilePath, int userId)

用于确定给定用户在设备上是否存在文件的辅助方法。

abstract File dumpHeap(String process, String devicePath)

尝试从 system_server 转储堆。

abstract boolean enableNetworkMonitor()

在设备上启用网络监控。

abstract getActiveApexes()

获取设备上已激活的 APEX 的相关信息。

abstract getAllSettings(String namespace)

返回所请求命名空间的键值对。

abstract String getAndroidId(int userId)

查找并返回与 userId 关联的 android-id,如果未找到,则返回 null。

abstract getAndroidIds()

创建了 Android ID 的 Map,其中包含与用户 ID 匹配的 Android ID。

abstract PackageInfo getAppPackageInfo(String packageName)

提取设备上安装的软件包的相关信息。

abstract getAppPackageInfos()

提取设备上安装的软件包的信息。

abstract InputStreamSource getBugreport()

从设备检索 bug 报告。

abstract InputStreamSource getBugreportz()

从设备检索 bugreportz。

abstract DeviceFoldableState getCurrentFoldableState()

返回设备的当前可折叠状态,如果出现某些问题,则返回 null。

abstract int getCurrentUser()

返回当前正在运行的用户的 ID。

abstract getFoldableStates()

返回设备上的可折叠状态列表。

abstract getInstalledPackageNames()

获取设备上存在的应用软件包名称。

abstract String getIpAddress()

获取设备的 IP 地址。

abstract KeyguardControllerState getKeyguardState()

返回一个对象以获取 Keyguard 的当前状态,如果不支持,则返回 null。

abstract Integer getMainUserId()

返回主用户 ID。

abstract getMainlineModuleInfo()

获取有关设备上安装的 Mainline 模块的信息。

abstract int getMaxNumberOfRunningUsersSupported()

获取支持的同时运行的用户数量上限。

abstract int getMaxNumberOfUsersSupported()

获取支持的最大用户数。

abstract TestDeviceOptions getOptions()

提取设备的测试选项。

abstract Integer getPrimaryUserId()

此方法已弃用。 getPrimaryUser 已从 UserManager 服务中弃用,请使用 ERROR(/android.os.UserManager#getMainUserId()) 获取第一个完整用户或 0(表示系统)。请注意,对于无头系统,它不是完整用户。

abstract InputStreamSource getScreenshot(String format, boolean rescale)

从设备中抓取屏幕截图。

abstract InputStreamSource getScreenshot(long displayId)

从指定显示 ID 的设备中抓取屏幕截图。

abstract InputStreamSource getScreenshot(String format)

从设备中抓取屏幕截图。

abstract InputStreamSource getScreenshot()

从设备中抓取屏幕截图。

abstract String getSetting(int userId, String namespace, String key)

返回所请求设置的值。

abstract String getSetting(String namespace, String key)

请参阅 getSetting(int, String, String),并在系统用户上执行。

abstract getUninstallablePackageNames()

获取可卸载的应用软件包名称。

abstract int getUserFlags(int userId)

查找并返回指定用户的标志。

abstract getUserInfos()

获取设备上 useId 到 UserInfo 的映射。

abstract int getUserSerialNumber(int userId)

如果找到与 userId 关联的序列号,则返回该序列号;在任何其他情况下,则返回 -10000。

abstract boolean hasFeature(String feature)

检查设备上是否提供某项功能。

abstract String installPackage(File packageFile, boolean reinstall, String... extraArgs)

在设备上安装 Android 软件包。

abstract String installPackage(File packageFile, boolean reinstall, boolean grantPermissions, String... extraArgs)

在设备上安装 Android 软件包。

abstract String installPackageForUser(File packageFile, boolean reinstall, int userId, String... extraArgs)

在设备上为指定用户安装 Android 软件包。

abstract String installPackageForUser(File packageFile, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)

在设备上为指定用户安装 Android 软件包。

abstract boolean installPackageWithIncrementalMode(File[] apkFiles, String[] extraArgs, String userId)

以增量模式安装 APK。

default String installPackages( packageFiles, boolean reinstall, String... extraArgs)

安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。

default String installPackages( packageFiles, boolean reinstall, boolean grantPermissions, String... extraArgs)

安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用,这些文件位于 Android 设备上。

default String installPackagesForUser( packageFiles, boolean reinstall, int userId, String... extraArgs)

为指定用户安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。

default String installPackagesForUser( packageFiles, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)

为指定用户安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。

default String installRemotePackages( remoteApkPaths, boolean reinstall, String... extraArgs)

安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用,这些文件位于 Android 设备上。

default String installRemotePackages( remoteApkPaths, boolean reinstall, boolean grantPermissions, String... extraArgs)

安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用,这些文件位于 Android 设备上。

abstract boolean isHeadlessSystemUserMode()

返回设备是否使用无头系统用户模式。

abstract boolean isMainUserPermanentAdmin()

返回主用户是否为永久管理员,且无法删除或降级为非管理员状态。

abstract boolean isMultiUserSupported()

确定是否支持多用户。

abstract boolean isPackageInstalled(String packageName, String userId)

查询设备上指定软件包名称和指定用户 ID 的应用,以检查该应用是否已安装在相应用户上。

abstract boolean isPackageInstalled(String packageName)

查询设备上是否存在指定软件包名称,以检查该软件包是否已安装。

abstract boolean isUserRunning(int userId)

检查指定用户是否正在运行。

abstract boolean isUserSecondary(int userId)

根据指定用户的标志,返回该用户是否为次要用户。

abstract boolean isUserVisible(int userId)

检查指定用户是否可见。

abstract boolean isUserVisibleOnDisplay(int userId, int displayId)

检查指定用户是否在指定显示屏上可见。

abstract boolean isVisibleBackgroundUsersOnDefaultDisplaySupported()

返回设备是否允许用户在 ERROR(/java.android.view.Display#DEFAULT_DISPLAY) 中启动时在后台可见。

abstract boolean isVisibleBackgroundUsersSupported()

返回设备是否允许用户在后台启动可见。

abstract boolean isWifiEnabled()

测试 Wi-Fi 是否已启用。

abstract listDisplayIds()

收集设备上“dumpsys SurfaceFlinger”报告的可用显示屏 ID 列表。

abstract listDisplayIdsForStartingVisibleBackgroundUsers()

获取可用于 start a user visible in the background 的显示屏列表。

abstract listUsers()

获取设备上的用户列表。

abstract boolean logBugreport(String dataName, ITestLogger listener)

用于获取 bug 报告并将其记录到报告者的辅助方法。

default void notifySnapuserd(SnapuserdWaitPhase waitPhase)

通知设备等待 snapuserd 完成。

abstract void registerDeviceActionReceiver(IDeviceActionReceiver deviceActionReceiver)

为相应设备注册 IDeviceActionReceiver

abstract boolean removeAdmin(String componentName, int userId)

移除指定用户中的指定设备管理员,如果成功,则返回 true,否则返回 false

abstract void removeOwners()

尽最大努力移除所有现有的设备配置文件所有者。

abstract boolean removeUser(int userId)

从设备中移除指定用户。

abstract boolean setDeviceOwner(String componentName, int userId)

在指定用户中将设备管理员组件设为设备所有者。

abstract void setSetting(String namespace, String key, String value)

请参阅 setSetting(int, String, String, String),并在系统用户上执行。

abstract void setSetting(int userId, String namespace, String key, String value)

向指定用户的命名空间添加设置值。

abstract boolean startUser(int userId)

在后台启动指定用户(如果该用户目前已停止)。

abstract boolean startUser(int userId, boolean waitFlag)

在后台启动指定用户(如果该用户目前已停止)。

abstract boolean startVisibleBackgroundUser(int userId, int displayId, boolean waitFlag)

在后台启动指定用户,该用户在指定显示屏中可见(即允许用户在该显示屏中启动 activity)。

abstract boolean stopUser(int userId)

停止指定用户。

abstract boolean stopUser(int userId, boolean waitFlag, boolean forceFlag)

停止指定用户。

abstract boolean switchUser(int userId)

切换到另一个具有默认超时时长的 userId。

abstract boolean switchUser(int userId, long timeout)

切换到另一个 userId,并将提供的超时时间作为截止时间。

abstract Bugreport takeBugreport()

获取 bug 报告并将其返回到 Bugreport 对象中以进行处理。

abstract String uninstallPackage(String packageName)

从设备中卸载 Android 软件包。

abstract String uninstallPackageForUser(String packageName, int userId)

为指定用户从设备中卸载 Android 软件包。

default void waitForSnapuserd(SnapuserdWaitPhase currentPhase)

如果预期如此,请等待 snapuserd 完成。

公共方法

canSwitchToHeadlessSystemUser

public abstract boolean canSwitchToHeadlessSystemUser ()

返回是否允许切换到无头系统用户。

返回
boolean

抛出
DeviceNotAvailableException

checkConnectivity

public abstract boolean checkConnectivity ()

检查设备是否已连接到网络。

返回
boolean 如果设备有有效的网络连接,则为 true;否则为 false

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

clearErrorDialogs

public abstract boolean clearErrorDialogs ()

尝试关闭设备界面上当前显示的任何错误对话框。

返回
boolean 如果不存在对话框或对话框已成功清除,则为 true。 否则为 false

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

clearLastConnectedWifiNetwork

public abstract void clearLastConnectedWifiNetwork ()

清除上次连接的 Wi-Fi 网络。在开始新的调用时应调用此方法,以避免在设备重启后连接到之前测试中使用的 Wi-Fi 网络。

connectToWifiNetwork

public abstract boolean connectToWifiNetwork ( wifiSsidToPsk)

连接到 WLAN 网络。

开启 wifi 并阻塞,直到与 wifiSsidToPsk 映射中给定的某个 wifi 网络成功建立连接。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi()ITestDevice.clearLastConnectedWifiNetwork()

参数
wifiSsidToPsk :一个将 Wi-Fi SSID 映射到密码的映射。

返回
boolean true 如果已成功连接到 WLAN 网络。false 否则

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

connectToWifiNetwork

public abstract boolean connectToWifiNetwork ( wifiSsidToPsk, 
                boolean scanSsid)

连接到 WLAN 网络。

开启 wifi 并阻塞,直到与 wifiSsidToPsk 映射中给定的某个 wifi 网络成功建立连接。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi()ITestDevice.clearLastConnectedWifiNetwork()

参数
wifiSsidToPsk :一个将 Wi-Fi SSID 映射到密码的映射。

scanSsid boolean:是否扫描此网络的隐藏 SSID。

返回
boolean true 如果已成功连接到 WLAN 网络。false 否则

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

connectToWifiNetwork

public abstract boolean connectToWifiNetwork (String wifiSsid, 
                String wifiPsk)

连接到 WLAN 网络。

开启 wifi 并阻塞,直到成功连接到指定的 wifi 网络。 建立连接后,实例会在每次重启后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi()ITestDevice.clearLastConnectedWifiNetwork()

参数
wifiSsid String:要连接的 WiFi SSID

wifiPsk String:PSK 口令,如果未加密,则为 null

返回
boolean true 如果已成功连接到 WLAN 网络。false 否则

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

connectToWifiNetwork

public abstract boolean connectToWifiNetwork (String wifiSsid, 
                String wifiPsk, 
                boolean scanSsid)

连接到 WLAN 网络。

开启 wifi 并阻塞,直到成功连接到指定的 wifi 网络。 建立连接后,实例会在每次重启后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi()ITestDevice.clearLastConnectedWifiNetwork()

参数
wifiSsid String:要连接的 WiFi SSID

wifiPsk String:PSK 口令,如果未加密,则为 null

scanSsid boolean:是否扫描此网络的隐藏 SSID。

返回
boolean true 如果已成功连接到 WLAN 网络。false 否则

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

connectToWifiNetworkIfNeeded

public abstract boolean connectToWifiNetworkIfNeeded (String wifiSsid, 
                String wifiPsk, 
                boolean scanSsid)

connectToWifiNetwork(String, String) 的一种变体,仅在设备当前没有网络连接时连接。

参数
scanSsid boolean:是否扫描此网络的隐藏 SSID

返回
boolean true 如果已成功连接到 WLAN 网络。false 否则

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

connectToWifiNetworkIfNeeded

public abstract boolean connectToWifiNetworkIfNeeded (String wifiSsid, 
                String wifiPsk)

connectToWifiNetwork(String, String) 的一种变体,仅当设备当前没有网络连接时才连接。

返回
boolean true 如果已成功连接到 WLAN 网络。false 否则

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

createUser

public abstract int createUser (String name)

创建具有指定名称和默认标志 0 的用户。

参数
name String:要在设备上创建的用户的

返回
int 创建的用户 ID 的整数

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

createUser

public abstract int createUser (String name, 
                boolean guest, 
                boolean ephemeral)

使用给定的名称和提供的标志创建用户

参数
name String:要在设备上创建的用户的

guest boolean:在创建期间启用用户标志 --guest

ephemeral boolean:在创建期间启用用户标志 --ephemeral

返回
int 所创建用户的 ID

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

createUser

public abstract int createUser (String name, 
                boolean guest, 
                boolean ephemeral, 
                boolean forTesting)

使用给定的名称和提供的标志创建用户

参数
name String:要在设备上创建的用户的

guest boolean:在创建期间启用用户标志 --guest

ephemeral boolean:在创建期间启用用户标志 --ephemeral

forTesting boolean:在创建期间启用测试标志 --for-testing

返回
int 所创建用户的 ID

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

createUserNoThrow

public abstract int createUserNoThrow (String name)

创建具有指定名称和默认标志 0 的用户。

参数
name String:要在设备上创建的用户的

返回
int 创建的用户 ID 的整数,如果出错则为 -1。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

deregisterDeviceActionReceiver

public abstract void deregisterDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)

移除已注册的 IDeviceActionReceiver

参数
deviceActionReceiver IDeviceActionReceiver:要移除的 IDeviceActionReceiver

disableKeyguard

public abstract void disableKeyguard ()

尝试停用锁屏。

首先,等待输入调度准备就绪,这大约发生在设备报告 BOOT_COMPLETE 的同时,但显然是异步的,因为当前框架实现偶尔会出现竞态条件。然后,系统会发送命令来关闭锁屏(仅适用于不安全的锁屏)

抛出
DeviceNotAvailableException

disableNetworkMonitor

public abstract boolean disableNetworkMonitor ()

停用设备上的网络监控功能。

返回
boolean 如果成功停用监控,则为 true。如果失败,则为 false

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

disconnectFromWifi

public abstract boolean disconnectFromWifi ()

断开与 Wi-Fi 网络的连接。

从已知网络列表中移除所有网络并停用 Wi-Fi。

返回
boolean 如果已成功断开与 WLAN 网络的连接,则为 true。如果断开连接失败,则为 false

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

doesFileExist

public abstract boolean doesFileExist (String deviceFilePath, 
                int userId)

用于确定设备上是否存在指定用户的文件的辅助方法。

参数
deviceFilePath String:要检查的设备上文件的绝对路径

userId int:要检查文件是否存在所针对的用户 ID

返回
boolean 如果文件存在,则为 true;否则为 false

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

dumpHeap

public abstract File dumpHeap (String process, 
                String devicePath)

尝试从 system_server 转储堆。调用者负责清理转储的文件。

参数
process String:要执行 dumpheap 的设备进程的名称。

devicePath String:设备上用于放置 dump 的路径。此位置必须是权限允许的位置。

返回
File 包含报告的 ERROR(/File)。如果出现故障,则为 null。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

enableNetworkMonitor

public abstract boolean enableNetworkMonitor ()

在设备上启用网络监控。

返回
boolean 如果成功启用监控,则为 true。如果失败,则为 false

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

getActiveApexes

public abstract  getActiveApexes ()

提取设备上已激活的 APEX 的相关信息。

返回
ERROR(/Set)(共 ApexInfo 个)目前已在设备上激活

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getAllSettings

public abstract  getAllSettings (String namespace)

返回所请求命名空间的键值对。

参数
namespace String:必须是 {"system", "secure", "global"} 之一

返回
键值对的映射。如果不支持命名空间,则为 null。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getAndroidId

public abstract String getAndroidId (int userId)

查找并返回与 userId 关联的 android-id,如果未找到,则返回 null。

参数
userId int

返回
String

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getAndroidIds

public abstract  getAndroidIds ()

创建了 Android ID 与用户 ID 匹配的映射。无法保证每个用户 ID 都能在此函数中找到关联的 Android ID,因此某些用户 ID 可能会匹配到 null。

返回
找到的与用户 ID 匹配的 Android ID 的映射。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getAppPackageInfo

public abstract PackageInfo getAppPackageInfo (String packageName)

提取设备上安装的软件包的相关信息。

参数
packageName String

返回
PackageInfo 如果无法检索信息,则为 PackageInfonull

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getAppPackageInfos

public abstract  getAppPackageInfos ()

获取设备上安装的软件包的信息。

返回
设备上安装的 PackageInfoERROR(/List)

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getBugreport

public abstract InputStreamSource getBugreport ()

从设备检索 bug 报告。

保证此实现继续在没有 SD 卡(或 SD 卡尚未装载)的设备上运行。

返回
InputStreamSource 一种 InputStreamSource,可按需生成 bug 报告内容。如果失败,InputStreamSource 将生成一个空的 ERROR(/InputStream)

getBugreportz

public abstract InputStreamSource getBugreportz ()

从设备检索 bugreportz。ZIP 格式的 bug 报告包含主 bug 报告和对调试有用的其他日志文件。

仅支持“adb version”> 1.0.36

返回
InputStreamSource 包含 bugreportz 的 zip 文件的 InputStreamSource,如果失败,则返回 null。

getCurrentFoldableState

public abstract DeviceFoldableState getCurrentFoldableState ()

返回设备的当前可折叠状态,如果出现某些问题,则返回 null。

返回
DeviceFoldableState

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getCurrentUser

public abstract int getCurrentUser ()

返回当前正在运行的用户的 ID。如果出现错误,则返回 -10000。

返回
int

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getFoldableStates

public abstract  getFoldableStates ()

返回设备上的可折叠状态列表。可通过“cmd device_state print-states”获取。

返回

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getInstalledPackageNames

public abstract  getInstalledPackageNames ()

提取设备上存在的应用软件包名称。

返回
设备上当前安装的 String 个软件包名称的 ERROR(/Set)

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getIpAddress

public abstract String getIpAddress ()

获取设备的 IP 地址。

返回
String 设备的 IP 地址,如果设备没有 IP 地址,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

getKeyguardState

public abstract KeyguardControllerState getKeyguardState ()

返回一个对象以获取 Keyguard 的当前状态,如果不支持,则返回 null。

返回
KeyguardControllerState 包含有关锁屏状态的快照的 KeyguardControllerState,如果不支持锁屏查询,则返回 Null。

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

getMainUserId

public abstract Integer getMainUserId ()

返回主用户 ID。

返回
Integer 主用户的 userId(如果有),如果没有主用户,则为 null。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceRuntimeException 如果设备的输出不符合预期。
DeviceNotAvailableException

getMainlineModuleInfo

public abstract  getMainlineModuleInfo ()

获取有关设备上安装的 Mainline 模块的信息。

返回
设备上当前安装的 String 个 Mainline 模块的 ERROR(/Set)

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getMaxNumberOfRunningUsersSupported

public abstract int getMaxNumberOfRunningUsersSupported ()

获取支持的同时运行的用户数量上限。默认设置为 0。

返回
int 一个整数,表示同时运行的用户数

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getMaxNumberOfUsersSupported

public abstract int getMaxNumberOfUsersSupported ()

获取支持的最大用户数。默认设置为 0。

返回
int 一个整数,表示支持的用户数

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getOptions

public abstract TestDeviceOptions getOptions ()

提取设备的测试选项。

返回
TestDeviceOptions 与被测设备相关的 TestDeviceOptions

getPrimaryUserId

public abstract Integer getPrimaryUserId ()

此方法已弃用。
getPrimaryUser 已从 UserManager 服务中弃用,请使用 ERROR(/android.os.UserManager#getMainUserId()) 获取第一个完整用户或 0(表示系统)。请注意,对于无头系统,它不是完整用户。

返回主用户 ID。

返回
Integer 主要用户的 userId(如果有),如果没有主要用户,则为 null。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceRuntimeException 如果设备的输出不符合预期。
DeviceNotAvailableException

getScreenshot

public abstract InputStreamSource getScreenshot (String format, 
                boolean rescale)

从设备中抓取屏幕截图。建议改用 getScreenshot(String),并采用 JPEG 编码以减小大小。

参数
format String:支持 PNG、JPEG

rescale boolean:是否应调整屏幕截图的大小以减小生成的图片的大小

返回
InputStreamSource 屏幕截图的 InputStreamSource 格式,如果屏幕截图未成功,则为 null

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getScreenshot

public abstract InputStreamSource getScreenshot (long displayId)

从指定显示 ID 的设备中抓取屏幕截图。格式为 PNG。

TODO:扩展上述实现以支持“format”和“rescale”

参数
displayId long:要从中获取屏幕截图的屏幕的显示 ID。

返回
InputStreamSource 屏幕截图的 InputStreamSource 格式,如果屏幕截图未成功,则为 null

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getScreenshot

public abstract InputStreamSource getScreenshot (String format)

从设备中抓取屏幕截图。 建议使用 getScreenshot(format) 并采用 JPEG 编码以缩小文件大小

参数
format String:支持 PNG、JPEG

返回
InputStreamSource 如果屏幕截图成功,则为屏幕截图的 InputStreamSource 格式,否则为 null

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getScreenshot

public abstract InputStreamSource getScreenshot ()

从设备中抓取屏幕截图。

返回
InputStreamSource png 格式的屏幕截图的 InputStreamSource,如果屏幕截图未成功,则为 null

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getSetting

public abstract String getSetting (int userId, 
                String namespace, 
                String key)

返回所请求设置的值。 命名空间必须是以下之一:{"system", "secure", "global"}

参数
userId int

namespace String

key String

返回
String 与用户的命名空间:键关联的值。如果未找到,则为 null。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getSetting

public abstract String getSetting (String namespace, 
                String key)

请参阅 getSetting(int, String, String),并在系统用户上执行。

参数
namespace String

key String

返回
String

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getUninstallablePackageNames

public abstract  getUninstallablePackageNames ()

获取可卸载的应用软件包名称。目前,此属性定义为非系统软件包和更新的系统软件包。

返回
设备上当前安装的不可卸载的 String 软件包名称的 ERROR(/Set)

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getUserFlags

public abstract int getUserFlags (int userId)

查找并返回指定用户的标志。 标志在 Android 开源项目的“android.content.pm.UserInfo”类中定义。

参数
userId int

返回
int 如果找到,则为与所提供的 userId 关联的标志;在任何其他情况下,则为 -10000。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getUserInfos

public abstract  getUserInfos ()

获取设备上 useId 到 UserInfo 的映射。如果设备的输出不符合预期,将抛出 DeviceRuntimeException

返回
UserInfo 对象的列表。

抛出
com.android.tradefed.device.DeviceNotAvailableException
com.android.tradefed.device.DeviceRuntimeException
DeviceNotAvailableException

getUserSerialNumber

public abstract int getUserSerialNumber (int userId)

如果找到与 userId 关联的序列号,则返回该序列号;在任何其他情况下,则返回 -10000。

参数
userId int

返回
int

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

hasFeature

public abstract boolean hasFeature (String feature)

检查某项功能是否适用于设备。

参数
feature String:应采用“feature:”或直接采用“”格式。

返回
boolean 如果找到相应功能,则为 true;否则为 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

installPackage

public abstract String installPackage (File packageFile, 
                boolean reinstall, 
                String... extraArgs)

在设备上安装 Android 软件包。

参数
packageFile File:要安装的 APK 文件

reinstall boolean:如果应执行重新安装,则为 true

extraArgs String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

installPackage

public abstract String installPackage (File packageFile, 
                boolean reinstall, 
                boolean grantPermissions, 
                String... extraArgs)

在设备上安装 Android 软件包。

注意:只有需要在安装时明确控制授予运行时权限的使用情形才应调用此函数。

参数
packageFile File:要安装的 APK 文件

reinstall boolean:如果应执行重新安装,则为 true

grantPermissions boolean:是否应在安装时授予所有运行时权限

extraArgs String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。
UnsupportedOperationException 如果设备上的平台不支持运行时权限。

installPackageForUser

public abstract String installPackageForUser (File packageFile, 
                boolean reinstall, 
                int userId, 
                String... extraArgs)

在设备上为指定用户安装 Android 软件包。

参数
packageFile File:要安装的 APK 文件

reinstall boolean:如果应执行重新安装,则为 true

userId int:要安装的整数用户 ID。

extraArgs String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

installPackageForUser

public abstract String installPackageForUser (File packageFile, 
                boolean reinstall, 
                boolean grantPermissions, 
                int userId, 
                String... extraArgs)

在设备上为指定用户安装 Android 软件包。

注意:只有需要在安装时明确控制授予运行时权限的使用情形才应调用此函数。

参数
packageFile File:要安装的 APK 文件

reinstall boolean:如果应执行重新安装,则为 true

grantPermissions boolean:是否应在安装时授予所有运行时权限

userId int:要安装的整数用户 ID。

extraArgs String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。
UnsupportedOperationException 如果设备上的平台不支持运行时权限。

installPackageWithIncrementalMode

public abstract boolean installPackageWithIncrementalMode (File[] apkFiles, 
                String[] extraArgs, 
                String userId)

以增量模式安装 APK。

参数
apkFiles File:要安装的 APK 文件。

extraArgs String

userId String

返回
boolean

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

installPackages

public String installPackages ( packageFiles, 
                boolean reinstall, 
                String... extraArgs)

安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。 如需了解如何将 APK 拆分为多个文件,请参阅“https://developer.android.com/studio/build/configure-apk-splits”。

参数
packageFiles :本地 APK 文件

reinstall boolean:如果应执行重新安装,则为 true

extraArgs String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。
UnsupportedOperationException 如果设备上的平台不支持运行时权限。

installPackages

public String installPackages ( packageFiles, 
                boolean reinstall, 
                boolean grantPermissions, 
                String... extraArgs)

安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用,这些文件位于 Android 设备上。如需了解如何将 APK 拆分为多个文件,请参阅“https://developer.android.com/studio/build/configure-apk-splits”。

注意:只有需要在安装时明确控制授予运行时权限的使用情形才应调用此函数。

参数
packageFiles :要安装的远程 APK 文件路径

reinstall boolean:如果应执行重新安装,则为 true

grantPermissions boolean:是否应在安装时授予所有运行时权限

extraArgs String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。
UnsupportedOperationException 如果设备上的平台不支持运行时权限。

installPackagesForUser

public String installPackagesForUser ( packageFiles, 
                boolean reinstall, 
                int userId, 
                String... extraArgs)

为指定用户安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。如需了解如何将 APK 拆分为多个文件,请参阅“https://developer.android.com/studio/build/configure-apk-splits”。

参数
packageFiles :本地 APK 文件

reinstall boolean:如果应执行重新安装,则为 true

userId int:要安装的整数用户 ID。

extraArgs String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。
UnsupportedOperationException 如果设备上的平台不支持运行时权限。

installPackagesForUser

public String installPackagesForUser ( packageFiles, 
                boolean reinstall, 
                boolean grantPermissions, 
                int userId, 
                String... extraArgs)

为指定用户安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。如需了解如何将 APK 拆分为多个文件,请参阅“https://developer.android.com/studio/build/configure-apk-splits”。

注意:只有需要在安装时明确控制授予运行时权限的使用情形才应调用此函数。

参数
packageFiles :本地 APK 文件

reinstall boolean:如果应执行重新安装,则为 true

grantPermissions boolean:是否应在安装时授予所有运行时权限

userId int:要安装的整数用户 ID。

extraArgs String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。
UnsupportedOperationException 如果设备上的平台不支持运行时权限。

installRemotePackages

public String installRemotePackages ( remoteApkPaths, 
                boolean reinstall, 
                String... extraArgs)

安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用,这些文件位于 Android 设备上。如需了解如何将 APK 拆分为多个文件,请参阅“https://developer.android.com/studio/build/configure-apk-splits”。

参数
remoteApkPaths :远程 APK 文件路径

reinstall boolean:如果应执行重新安装,则为 true

extraArgs String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。
UnsupportedOperationException 如果设备上的平台不支持运行时权限。

installRemotePackages

public String installRemotePackages ( remoteApkPaths, 
                boolean reinstall, 
                boolean grantPermissions, 
                String... extraArgs)

安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用,这些文件位于 Android 设备上。如需了解如何将 APK 拆分为多个文件,请参阅“https://developer.android.com/studio/build/configure-apk-splits”。

注意:只有需要在安装时明确控制授予运行时权限的使用情形才应调用此函数。

参数
remoteApkPaths :远程 APK 文件路径

reinstall boolean:如果应执行重新安装,则为 true

grantPermissions boolean:是否应在安装时授予所有运行时权限

extraArgs String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。
UnsupportedOperationException 如果设备上的平台不支持运行时权限。

isHeadlessSystemUserMode

public abstract boolean isHeadlessSystemUserMode ()

返回设备是否使用无头系统用户模式。

返回
boolean

抛出
DeviceNotAvailableException

isMainUserPermanentAdmin

public abstract boolean isMainUserPermanentAdmin ()

返回主用户是否为永久管理员,且无法删除或降级为非管理员状态。

返回
boolean

抛出
DeviceNotAvailableException

isMultiUserSupported

public abstract boolean isMultiUserSupported ()

确定是否支持多用户。

返回
boolean 如果支持多用户,则为 true,否则为 false

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

isPackageInstalled

public abstract boolean isPackageInstalled (String packageName, 
                String userId)

查询设备中指定软件包名称和指定用户 ID 的应用,以检查该应用是否已安装在相应用户下。

参数
packageName String:我们要检查的软件包是否已安装。

userId String:我们要检查软件包是否已安装的用户 ID。如果为 null,则使用主要用户零。

返回
boolean 如果相应软件包被报告为已安装,则为 true。否则输出 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

isPackageInstalled

public abstract boolean isPackageInstalled (String packageName)

查询设备上是否存在给定的软件包名称,以检查该软件包是否已安装。

参数
packageName String

返回
boolean 如果相应软件包被报告为已安装,则为 true。否则输出 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

isUserRunning

public abstract boolean isUserRunning (int userId)

检查指定用户是否正在运行。

参数
userId int

返回
boolean 如果用户正在跑步,则为 true;在所有其他情况下,则为 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

isUserSecondary

public abstract boolean isUserSecondary (int userId)

根据指定用户的标志,返回该用户是否为次要用户。

参数
userId int

返回
boolean 如果用户是次要用户,则为 true;否则为 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

isUserVisible

public abstract boolean isUserVisible (int userId)

检查指定用户是否可见。

“可见”用户是指正在与“人类”用户互动的用户,因此能够启动启动 activity(通常在默认显示屏中)。

参数
userId int

返回
boolean

抛出
DeviceNotAvailableException

isUserVisibleOnDisplay

public abstract boolean isUserVisibleOnDisplay (int userId, 
                int displayId)

检查指定用户是否在指定显示屏中可见。

“可见”用户是指正在与“人类”用户互动的用户,因此能够在该显示屏中启动启动 activity。

参数
userId int

displayId int

返回
boolean

抛出
DeviceNotAvailableException

isVisibleBackgroundUsersOnDefaultDisplaySupported

public abstract boolean isVisibleBackgroundUsersOnDefaultDisplaySupported ()

返回设备是否允许用户在 ERROR(/java.android.view.Display#DEFAULT_DISPLAY) 中启动时在后台可见。

如果存在,您可以调用 startVisibleBackgroundUser(int, int, boolean),并传递由 listDisplayIdsForStartingVisibleBackgroundUsers() 返回的显示屏(应包含 ERROR(/java.android.view.Display#DEFAULT_DISPLAY))。

返回
boolean

抛出
DeviceNotAvailableException

isVisibleBackgroundUsersSupported

public abstract boolean isVisibleBackgroundUsersSupported ()

返回设备是否允许用户在后台启动可见的 activity。

如果存在,您可以调用 startVisibleBackgroundUser(int, int, boolean),并传递由 listDisplayIdsForStartingVisibleBackgroundUsers() 返回的显示屏。

返回
boolean

抛出
DeviceNotAvailableException

isWifiEnabled

public abstract boolean isWifiEnabled ()

测试 Wi-Fi 是否已启用。

检查设备上是否已启用 Wi-Fi。在不应使用 WLAN 运行的测试(例如移动数据测试)之前,用于断言 WLAN 状态。

返回
boolean 如果 WLAN 已启用,则为 truefalse(如果已停用)

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

listDisplayIds

public abstract  listDisplayIds ()

收集设备上“dumpsys SurfaceFlinger”报告的可用显示屏 ID 列表。

返回
展示广告列表。默认情况下,始终返回默认显示屏 0。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

listDisplayIdsForStartingVisibleBackgroundUsers

public abstract  listDisplayIdsForStartingVisibleBackgroundUsers ()

获取可用于 start a user visible in the background 的显示屏列表。

返回

抛出
DeviceNotAvailableException

listUsers

public abstract  listUsers ()

获取设备上的用户列表。如果设备的输出不符合预期,将抛出 DeviceRuntimeException

返回
用户 ID 列表。

抛出
com.android.tradefed.device.DeviceNotAvailableException
com.android.tradefed.device.DeviceRuntimeException
DeviceNotAvailableException

logBugreport

public abstract boolean logBugreport (String dataName, 
                ITestLogger listener)

用于获取 bug 报告并将其记录到报告者的辅助方法。

参数
dataName String:将报告 bug 报告所用的名称。

listener ITestLogger:用于记录 bug 报告的 ITestLogger

返回
boolean 如果日志记录成功,则为 true,否则为 false。

notifySnapuserd

public void notifySnapuserd (SnapuserdWaitPhase waitPhase)

通知设备等待 snapuserd 完成。

参数
waitPhase SnapuserdWaitPhase

registerDeviceActionReceiver

public abstract void registerDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)

为相应设备注册 IDeviceActionReceiver

在设备操作开始之前和结束之后,系统会通知所有已注册的 IDeviceActionReceiver

参数
deviceActionReceiver IDeviceActionReceiver:要注册的 IDeviceActionReceiver

removeAdmin

public abstract boolean removeAdmin (String componentName, 
                int userId)

移除指定用户中的指定设备管理员,如果成功,则返回 true,否则返回 false

参数
componentName String:要移除的设备管理员。

userId int:设备管理员所在的用户。

返回
boolean 如果成功,则为 true,否则为 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

removeOwners

public abstract void removeOwners ()

尽最大努力移除所有现有的设备配置文件所有者。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

removeUser

public abstract boolean removeUser (int userId)

从设备中移除指定用户。

参数
userId int:要移除的用户的

返回
boolean 如果我们成功移除了用户,则返回 true,否则返回 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

setDeviceOwner

public abstract boolean setDeviceOwner (String componentName, 
                int userId)

在指定用户中将设备管理员组件设为设备所有者。

参数
componentName String:设备管理员成为设备所有者。

userId int:设备所有者居住地的用户。

返回
boolean 如果成功,则为 true,否则为 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

setSetting

public abstract void setSetting (String namespace, 
                String key, 
                String value)

请参阅 setSetting(int, String, String, String),并在系统用户上执行。

参数
namespace String

key String

value String

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

setSetting

public abstract void setSetting (int userId, 
                String namespace, 
                String key, 
                String value)

向指定用户的命名空间添加设置值。某些设置仅在重启后可用。 命名空间必须是以下之一:{"system", "secure", "global"}

参数
userId int

namespace String

key String

value String

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

startUser

public abstract boolean startUser (int userId)

在后台启动指定用户(如果该用户目前处于停止状态)。如果用户已在后台运行,则此方法为 NOOP。

参数
userId int:要在后台启动的用户的

返回
boolean 如果用户已成功在后台启动,则返回 true。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

startUser

public abstract boolean startUser (int userId, 
                boolean waitFlag)

在后台启动指定用户(如果该用户目前处于停止状态)。如果用户已在后台运行,此方法为 NOOP。可以提供额外的标志来等待操作生效。

参数
userId int:要在后台启动的用户的

waitFlag boolean:将使命令等待,直到用户启动并解锁。

返回
boolean 如果用户已成功在后台启动,则返回 true。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

startVisibleBackgroundUser

public abstract boolean startVisibleBackgroundUser (int userId, 
                int displayId, 
                boolean waitFlag)

在后台启动指定用户,并在指定显示屏中显示(即允许用户在该显示屏中启动 activity)。

注意: 此命令不会检查用户是否存在、显示是否可用、device supports such feature 等。

参数
userId int:要在后台启动的用户的

displayId int:开始时用户可见的显示屏

waitFlag boolean:将使命令等待,直到用户启动并解锁。

返回
boolean 如果用户已成功启动并在后台可见,则为 true

抛出
DeviceNotAvailableException

stopUser

public abstract boolean stopUser (int userId)

停止指定用户。如果用户已停止,此方法为 NOOP。 无法停止当前用户和系统用户。

参数
userId int:要停止的用户的。

返回
boolean 如果用户已成功停止,则为 true。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

stopUser

public abstract boolean stopUser (int userId, 
                boolean waitFlag, 
                boolean forceFlag)

停止指定用户。可以提供额外的标志来等待操作生效,并强制终止用户。无法停止当前用户和系统用户。

参数
userId int:要停止的用户的。

waitFlag boolean:将使命令等待,直到用户停止。

forceFlag boolean:将强制停止用户。

返回
boolean 如果用户已成功停止,则为 true。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

switchUser

public abstract boolean switchUser (int userId)

切换到另一个具有默认超时时长的 userId。switchUser(int, long)

参数
userId int

返回
boolean 如果新 userId 与 userId 提供程序匹配,则为 true。否则输出 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

switchUser

public abstract boolean switchUser (int userId, 
                long timeout)

切换到另一个 userId,并将提供的超时时间作为截止时间。 在用户更改成功后尝试停用 Keyguard。

参数
userId int

timeout long:在返回 false 之前等待的时间,表示切换用户失败。

返回
boolean 如果新 userId 与 userId 提供程序匹配,则为 true。否则输出 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

takeBugreport

public abstract Bugreport takeBugreport ()

获取 bug 报告并将其返回到 Bugreport 对象中以进行处理。如果出现问题,则返回 null。需要在 Bugreport 对象中引用的文件通过 Bugreport.close() 清理。

返回
Bugreport

uninstallPackage

public abstract String uninstallPackage (String packageName)

从设备中卸载 Android 软件包。

参数
packageName String:要卸载的 Android 软件包

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

uninstallPackageForUser

public abstract String uninstallPackageForUser (String packageName, 
                int userId)

为指定用户从设备中卸载 Android 软件包。

参数
packageName String:要卸载的 Android 软件包

userId int:要卸载的整数用户 ID。

返回
String 一个包含错误代码的 String,如果成功,则为 null

抛出
DeviceNotAvailableException 如果与设备的连接丢失且无法恢复。

waitForSnapuserd

public void waitForSnapuserd (SnapuserdWaitPhase currentPhase)

如果这是预期行为,请等待 snapuserd 完成。

参数
currentPhase SnapuserdWaitPhase

抛出
DeviceNotAvailableException