ITestDevice
public
interface
ITestDevice
implements
INativeDevice
| com.android.tradefed.device.ITestDevice |
为 ddmlib IDevice 提供可靠且稍高级别的 API。
重试设备命令的次数可配置,并为无响应的设备提供设备恢复接口。
摘要
嵌套类 | |
|---|---|
class |
ITestDevice.ApexInfo
用于存储单个 APEX 相关信息的简单结构类 |
class |
ITestDevice.MountPointInfo
用于存储有关单个装载点信息的简单结构体类 |
公共方法 | |
|---|---|
abstract
String
|
adbInstallPackage(File packageFile, boolean reinstall, String... extraArgs)
使用 adb 命令在设备上安装 Android 软件包。 |
abstract
String
|
adbInstallPackage(File packageFile, boolean reinstall, boolean grantPermissions, String... extraArgs)
使用 adb 命令在设备上安装 Android 软件包。 |
abstract
boolean
|
canSwitchToHeadlessSystemUser()
返回是否允许切换到无头系统用户。 |
abstract
boolean
|
checkConnectivity()
检查设备是否已连接到网络。 |
abstract
boolean
|
clearErrorDialogs()
尝试关闭当前显示在设备界面上的所有错误对话框。 |
abstract
void
|
clearLastConnectedWifiNetwork()
清除上次连接的 WLAN 网络。 |
default
boolean
|
connectToWifiNetwork(Map<String, String> wifiSsidToPsk, boolean scanSsid)
此方法已废弃。
请改用 |
default
boolean
|
connectToWifiNetwork(Map<String, String> wifiSsidToPsk)
此方法已废弃。
请改用 |
default
boolean
|
connectToWifiNetwork(String wifiSsid, String wifiPsk)
此方法已废弃。
请改用 |
default
boolean
|
connectToWifiNetwork(String wifiSsid, String wifiPsk, boolean scanSsid)
此方法已废弃。
请改用 |
default
boolean
|
connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk, boolean scanSsid)
此方法已废弃。
请改用 |
default
boolean
|
connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk)
此方法已废弃。
请改用 |
abstract
IWifiHelper.WifiConnectionResult
|
connectToWifiNetworkIfNeededWithResult(String wifiSsid, String wifiPsk, boolean scanSsid)
|
abstract
IWifiHelper.WifiConnectionResult
|
connectToWifiNetworkIfNeededWithResult(String wifiSsid, String wifiPsk)
|
abstract
IWifiHelper.WifiConnectionResult
|
connectToWifiNetworkWithResult(String wifiSsid, String wifiPsk, boolean scanSsid)
连接到 WLAN 网络。 |
abstract
IWifiHelper.WifiConnectionResult
|
connectToWifiNetworkWithResult(Map<String, String> wifiSsidToPsk)
连接到 WLAN 网络。 |
abstract
IWifiHelper.WifiConnectionResult
|
connectToWifiNetworkWithResult(Map<String, String> wifiSsidToPsk, boolean scanSsid)
连接到 WLAN 网络。 |
abstract
IWifiHelper.WifiConnectionResult
|
connectToWifiNetworkWithResult(String wifiSsid, String wifiPsk)
连接到 WLAN 网络。 |
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)
移除已注册的 |
abstract
void
|
disableKeyguard()
尝试停用锁屏。 |
abstract
boolean
|
disableNetworkMonitor()
停用设备上的网络监控。 |
abstract
boolean
|
disconnectFromWifi()
断开与 WLAN 网络的连接。 |
abstract
boolean
|
doesFileExist(String deviceFilePath, int userId)
用于确定给定用户在设备上是否存在文件的辅助方法。 |
abstract
File
|
dumpHeap(String process, String devicePath)
尝试从 system_server 转储堆。 |
abstract
boolean
|
enableNetworkMonitor()
在设备上启用网络监控。 |
abstract
Set<ITestDevice.ApexInfo>
|
getActiveApexes()
获取有关设备上已激活 APEX 的信息。 |
abstract
Map<String, String>
|
getAllSettings(String namespace)
返回所请求命名空间的键值对。 |
abstract
String
|
getAndroidId(int userId)
查找并返回与 userId 关联的 android-id,如果未找到,则返回 null。 |
abstract
Map<Integer, String>
|
getAndroidIds()
创建了 Android ID 与匹配的用户 ID 的映射。 |
abstract
PackageInfo
|
getAppPackageInfo(String packageName)
提取设备上安装的软件包的相关信息。 |
abstract
List<PackageInfo>
|
getAppPackageInfos()
提取设备上安装的软件包的信息。 |
abstract
InputStreamSource
|
getBugreport()
从设备检索 bug 报告。 |
abstract
InputStreamSource
|
getBugreportz()
从设备检索 bugreportz。 |
abstract
DeviceFoldableState
|
getCurrentFoldableState()
返回设备的当前可折叠状态,如果出现某些问题,则返回 null。 |
abstract
int
|
getCurrentUser()
返回当前正在运行的用户的 ID。 |
abstract
Set<DeviceFoldableState>
|
getFoldableStates()
返回设备上的可折叠状态列表。 |
abstract
Set<String>
|
getInstalledPackageNames()
获取设备上存在的应用软件包名称。 |
abstract
String
|
getIpAddress()
获取设备的 IP 地址。 |
abstract
KeyguardControllerState
|
getKeyguardState()
返回一个对象以获取密钥卫士的当前状态,如果不支持,则返回 null。 |
abstract
Integer
|
getMainUserId()
返回主用户 ID。 |
abstract
Set<String>
|
getMainlineModuleInfo()
获取有关设备上安装的 Mainline 模块的信息。 |
abstract
int
|
getMaxNumberOfRunningUsersSupported()
获取支持的同时运行的用户数量上限。 |
abstract
int
|
getMaxNumberOfUsersSupported(String userType)
获取给定用户类型的支持用户数量上限。 |
abstract
int
|
getMaxNumberOfUsersSupported()
此方法已废弃。 使用 getMaxNumberOfUsersSupported(String userType) 获取给定用户类型支持的最大用户数。 |
abstract
TestDeviceOptions
|
getOptions()
获取设备的测试选项。 |
abstract
Integer
|
getPrimaryUserId()
此方法已废弃。
getPrimaryUser 已从 UserManager 服务中弃用,请使用 |
abstract
int
|
getRemainingCreatableUserCount(String userType)
返回可在相应设备上创建的指定用户类型的用户数量。 |
abstract
InputStreamSource
|
getScreenshot(Long displayId, String format, boolean rescale)
以支持的格式从指定显示屏 ID 的设备中抓取屏幕截图。 |
abstract
InputStreamSource
|
getScreenshot(String format, boolean rescale)
从设备中抓取屏幕截图。 |
abstract
InputStreamSource
|
getScreenshot(String format)
从设备中抓取屏幕截图。 |
abstract
InputStreamSource
|
getScreenshot(long displayId)
从指定显示 ID 的设备中抓取屏幕截图。 |
abstract
InputStreamSource
|
getScreenshot()
从设备中抓取屏幕截图。 |
abstract
String
|
getSetting(int userId, String namespace, String key)
返回所请求设置的值。 |
abstract
String
|
getSetting(String namespace, String key)
请参阅 |
abstract
Set<String>
|
getUninstallablePackageNames()
获取可卸载的应用软件包名称。 |
abstract
int
|
getUserFlags(int userId)
查找并返回指定用户的标志。 |
abstract
Map<Integer, UserInfo>
|
getUserInfos()
获取设备上 useId 到 |
abstract
int
|
getUserSerialNumber(int userId)
如果找到与 userId 关联的序列号,则返回该序列号;否则,返回 -10000。 |
abstract
int
|
getUserVisibleOnDisplay(int displayId)
获取指定显示屏上可见用户的用户 ID。 |
abstract
boolean
|
hasFeature(String feature)
检查设备上是否提供某项功能。 |
abstract
String
|
installPackage(File packageFile, boolean reinstall, boolean grantPermissions, String... extraArgs)
在设备上安装 Android 软件包。 |
abstract
String
|
installPackage(File packageFile, boolean reinstall, String... extraArgs)
在设备上安装 Android 软件包。 |
abstract
String
|
installPackageForUser(File packageFile, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)
在设备上为指定用户安装 Android 软件包。 |
abstract
String
|
installPackageForUser(File packageFile, boolean reinstall, int userId, String... extraArgs)
在设备上为指定用户安装 Android 软件包。 |
abstract
boolean
|
installPackageWithIncrementalMode(File[] apkFiles, String[] extraArgs, String userId)
以增量模式安装 APK。 |
default
String
|
installPackages(List<File> packageFiles, boolean reinstall, String... extraArgs)
安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。 |
default
String
|
installPackages(List<File> packageFiles, boolean reinstall, boolean grantPermissions, String... extraArgs)
安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用,这些文件位于 Android 设备上。 |
default
String
|
installPackagesForUser(List<File> packageFiles, boolean reinstall, int userId, String... extraArgs)
为指定用户安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。 |
default
String
|
installPackagesForUser(List<File> packageFiles, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)
为指定用户安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 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()
返回设备是否允许用户在 |
abstract
boolean
|
isVisibleBackgroundUsersSupported()
返回设备是否允许用户在后台启动可见的 activity。 |
abstract
boolean
|
isWifiEnabled()
测试 Wi-Fi 是否已启用。 |
abstract
Set<Long>
|
listDisplayIds()
收集设备上“dumpsys SurfaceFlinger”报告的可用显示屏 ID 列表。 |
abstract
Set<Integer>
|
listDisplayIdsForStartingVisibleBackgroundUsers()
获取可用于 |
abstract
ArrayList<Integer>
|
listUsers()
获取设备上的用户列表。 |
abstract
boolean
|
logBugreport(String dataName, ITestLogger listener)
用于获取 bug 报告并将其记录到报告者的辅助方法。 |
default
void
|
notifySnapuserd(SnapuserdWaitPhase waitPhase)
通知设备等待 snapuserd 完成。 |
abstract
void
|
registerDeviceActionReceiver(IDeviceActionReceiver deviceActionReceiver)
为相应设备注册 |
abstract
boolean
|
removeAdmin(String componentName, int userId)
移除指定用户中的指定设备管理员,如果成功,则返回 |
abstract
void
|
removeOwners()
尽最大努力移除所有现有的设备配置文件所有者。 |
abstract
boolean
|
removeUser(int userId)
从设备中移除指定用户。 |
abstract
boolean
|
setDeviceOwner(String componentName, int userId)
在指定用户中将设备管理员组件设置为设备所有者。 |
abstract
void
|
setSetting(String namespace, String key, String value)
请参阅 |
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 报告并将其返回到 |
abstract
String
|
uninstallPackage(String packageName)
从设备中卸载 Android 软件包。 |
abstract
String
|
uninstallPackageForUser(String packageName, int userId)
为指定用户从设备中卸载 Android 软件包。 |
default
void
|
waitForSnapuserd(SnapuserdWaitPhase currentPhase)
如果这是预期行为,请等待 snapuserd 完成。 |
公共方法
adbInstallPackage
public abstract String adbInstallPackage (File packageFile,
boolean reinstall,
String... extraArgs)使用 adb 命令在设备上安装 Android 软件包。
| 参数 | |
|---|---|
packageFile |
File:要安装的 APK 文件 |
reinstall |
boolean:如果应执行重新安装,则为 true |
extraArgs |
String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。 |
| 返回 | |
|---|---|
String |
一个包含错误代码的 String,如果成功则为 null。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
adbInstallPackage
public abstract String adbInstallPackage (File packageFile,
boolean reinstall,
boolean grantPermissions,
String... extraArgs)使用 adb 命令在设备上安装 Android 软件包。
注意:只有需要在安装时明确控制授予运行时权限的使用情形才应调用此函数。
| 参数 | |
|---|---|
packageFile |
File:要安装的 APK 文件 |
reinstall |
boolean:如果应执行重新安装,则为 true |
grantPermissions |
boolean:是否应在安装时授予所有运行时权限 |
extraArgs |
String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。 |
| 返回 | |
|---|---|
String |
一个包含错误代码的 String,如果成功则为 null。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
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 boolean connectToWifiNetwork (Map<String, String> wifiSsidToPsk,
boolean scanSsid)
此方法已废弃。
请改用 connectToWifiNetworkWithResult(Map,boolean)。
连接到 WLAN 网络。
开启 wifi 并阻塞,直到与 wifiSsidToPsk 映射中给定的某个 wifi 网络成功建立连接。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi() 或 ITestDevice.clearLastConnectedWifiNetwork()。
| 参数 | |
|---|---|
wifiSsidToPsk |
Map:一个将 Wi-Fi SSID 映射到密码的映射。 |
scanSsid |
boolean:是否扫描此网络的隐藏 SSID。 |
| 返回 | |
|---|---|
boolean |
true 如果已成功连接到 WLAN 网络。false
否则 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
connectToWifiNetwork
public boolean connectToWifiNetwork (Map<String, String> wifiSsidToPsk)
此方法已废弃。
请改用 connectToWifiNetworkWithResult(Map)。
连接到 WLAN 网络。
开启 wifi 并阻塞,直到与 wifiSsidToPsk 映射中给定的某个 wifi 网络成功建立连接。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi() 或 ITestDevice.clearLastConnectedWifiNetwork()。
| 参数 | |
|---|---|
wifiSsidToPsk |
Map:一个将 Wi-Fi SSID 映射到密码的映射。 |
| 返回 | |
|---|---|
boolean |
true 如果已成功连接到 WLAN 网络。false
否则 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
connectToWifiNetwork
public boolean connectToWifiNetwork (String wifiSsid,
String wifiPsk)
此方法已废弃。
请改用 connectToWifiNetworkWithResult(String,String)。
连接到 WLAN 网络。
开启 wifi 并阻塞,直到成功连接到指定的 wifi 网络。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi() 或 ITestDevice.clearLastConnectedWifiNetwork()。
| 参数 | |
|---|---|
wifiSsid |
String:要连接的 WiFi SSID |
wifiPsk |
String:PSK 密码,如果未加密,则为 null |
| 返回 | |
|---|---|
boolean |
true 如果已成功连接到 WLAN 网络。false
否则 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
connectToWifiNetwork
public boolean connectToWifiNetwork (String wifiSsid,
String wifiPsk,
boolean scanSsid)
此方法已废弃。
请改用 connectToWifiNetworkWithResult(String,String,boolean)。
连接到 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 boolean connectToWifiNetworkIfNeeded (String wifiSsid,
String wifiPsk,
boolean scanSsid)
此方法已废弃。
请改用 connectToWifiNetworkIfNeededWithResult(String,String,boolean)。
一种仅在设备当前没有网络连接时才连接的 connectToWifiNetwork(String,String) 变体。
| 参数 | |
|---|---|
scanSsid |
boolean:是否扫描此网络的隐藏 SSID |
| 返回 | |
|---|---|
boolean |
true 如果已成功连接到 WLAN 网络。false
否则 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
connectToWifiNetworkIfNeeded
public boolean connectToWifiNetworkIfNeeded (String wifiSsid,
String wifiPsk)
此方法已废弃。
请改用 connectToWifiNetworkIfNeededWithResult(String,String)。
一种仅在设备当前没有网络连接时才连接的 connectToWifiNetwork(String,String) 变体。
| 返回 | |
|---|---|
boolean |
true 如果已成功连接到 WLAN 网络。false
否则 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
connectToWifiNetworkIfNeededWithResult
public abstract IWifiHelper.WifiConnectionResult connectToWifiNetworkIfNeededWithResult (String wifiSsid, String wifiPsk, boolean scanSsid)
一种仅在设备当前没有网络连接时才连接的 connectToWifiNetwork(String,String) 变体。
| 参数 | |
|---|---|
scanSsid |
boolean:是否扫描此网络的隐藏 SSID |
| 返回 | |
|---|---|
IWifiHelper.WifiConnectionResult |
WifiConnectionResult 表示连接的状态。 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
connectToWifiNetworkIfNeededWithResult
public abstract IWifiHelper.WifiConnectionResult connectToWifiNetworkIfNeededWithResult (String wifiSsid, String wifiPsk)
一种仅在设备当前没有网络连接时才连接的 connectToWifiNetwork(String,String) 变体。
| 返回 | |
|---|---|
IWifiHelper.WifiConnectionResult |
WifiConnectionResult 表示连接的状态。 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
connectToWifiNetworkWithResult
public abstract IWifiHelper.WifiConnectionResult connectToWifiNetworkWithResult (String wifiSsid, String wifiPsk, boolean scanSsid)
连接到 WLAN 网络。
开启 wifi 并阻塞,直到成功连接到指定的 wifi 网络。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi() 或 ITestDevice.clearLastConnectedWifiNetwork()。
| 参数 | |
|---|---|
wifiSsid |
String:要连接的 WiFi SSID |
wifiPsk |
String:PSK 密码,如果未加密,则为 null |
scanSsid |
boolean:是否扫描此网络的隐藏 SSID。 |
| 返回 | |
|---|---|
IWifiHelper.WifiConnectionResult |
WifiConnectionResult 表示连接的状态。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
connectToWifiNetworkWithResult
public abstract IWifiHelper.WifiConnectionResult connectToWifiNetworkWithResult (Map<String, String> wifiSsidToPsk)
连接到 WLAN 网络。
开启 Wi-Fi 并阻塞,直到成功连接到 wifiSsidToPsk 映射中给定的某个 Wi-Fi 网络。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi() 或 ITestDevice.clearLastConnectedWifiNetwork()。
| 参数 | |
|---|---|
wifiSsidToPsk |
Map:一个将 Wi-Fi SSID 映射到密码的映射。 |
| 返回 | |
|---|---|
IWifiHelper.WifiConnectionResult |
WifiConnectionResult 表示连接的状态。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
connectToWifiNetworkWithResult
public abstract IWifiHelper.WifiConnectionResult connectToWifiNetworkWithResult (Map<String, String> wifiSsidToPsk, boolean scanSsid)
连接到 WLAN 网络。
开启 Wi-Fi 并阻塞,直到成功连接到 wifiSsidToPsk 映射中给定的某个 Wi-Fi 网络。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi() 或 ITestDevice.clearLastConnectedWifiNetwork()。
| 参数 | |
|---|---|
wifiSsidToPsk |
Map:一个将 Wi-Fi SSID 映射到密码的映射。 |
scanSsid |
boolean:是否扫描此网络的隐藏 SSID。 |
| 返回 | |
|---|---|
IWifiHelper.WifiConnectionResult |
WifiConnectionResult 表示连接的状态。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
connectToWifiNetworkWithResult
public abstract IWifiHelper.WifiConnectionResult connectToWifiNetworkWithResult (String wifiSsid, String wifiPsk)
连接到 WLAN 网络。
开启 wifi 并阻塞,直到成功连接到指定的 wifi 网络。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice.disconnectFromWifi() 或 ITestDevice.clearLastConnectedWifiNetwork()。
| 参数 | |
|---|---|
wifiSsid |
String:要连接的 WiFi SSID |
wifiPsk |
String:PSK 密码,如果未加密,则为 null |
| 返回 | |
|---|---|
IWifiHelper.WifiConnectionResult |
WifiConnectionResult 表示连接的状态。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
createUser
public abstract int createUser (String name)
创建具有指定名称和默认标志 0 的用户。
| 参数 | |
|---|---|
name |
String:要在设备上创建的用户的 |
| 返回 | |
|---|---|
int |
创建的用户 ID 的整数 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
IllegalStateException |
|
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 |
|
IllegalStateException |
|
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 |
|
IllegalStateException |
|
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 ()
断开与 WLAN 网络的连接。
从已知网络列表中移除所有网络,并停用 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 |
包含报告的 File。如果出现故障,则为 null。 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
enableNetworkMonitor
public abstract boolean enableNetworkMonitor ()
在设备上启用网络监控。
| 返回 | |
|---|---|
boolean |
如果成功启用监控,则为 true。如果失败,则为 false。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
getActiveApexes
public abstract Set<ITestDevice.ApexInfo> getActiveApexes ()
提取设备上已激活的 APEX 的相关信息。
| 返回 | |
|---|---|
Set<ITestDevice.ApexInfo> |
Set 个(共 ApexInfo 个)目前已在设备上激活 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
getAllSettings
public abstract Map<String, String> getAllSettings (String namespace)
返回所请求命名空间的键值对。
| 参数 | |
|---|---|
namespace |
String:必须是 {"system", "secure", "global"} 之一 |
| 返回 | |
|---|---|
Map<String, String> |
键值对的映射。如果不支持命名空间,则为 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 Map<Integer, String> getAndroidIds ()
创建了 Android ID 与匹配的用户 ID 的映射。无法保证每个用户 ID 都能在此函数中找到关联的 Android ID,因此某些用户 ID 可能会匹配到 null。
| 返回 | |
|---|---|
Map<Integer, String> |
找到的与用户 ID 匹配的 Android ID 的映射。 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
getAppPackageInfo
public abstract PackageInfo getAppPackageInfo (String packageName)
提取设备上安装的软件包的相关信息。
| 参数 | |
|---|---|
packageName |
String |
| 返回 | |
|---|---|
PackageInfo |
如果无法检索信息,则为 PackageInfo 或 null |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
getAppPackageInfos
public abstract List<PackageInfo> getAppPackageInfos ()
提取设备上安装的软件包的信息。
| 返回 | |
|---|---|
List<PackageInfo> |
设备上安装的 PackageInfo 的 List。 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
getBugreport
public abstract InputStreamSource getBugreport ()
从设备检索 bug 报告。
保证此实现继续在没有 SD 卡(或 SD 卡尚未装载)的设备上正常运行。
| 返回 | |
|---|---|
InputStreamSource |
一种 InputStreamSource,可按需生成 bug 报告内容。如果失败,InputStreamSource 将生成空的 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 Set<DeviceFoldableState> getFoldableStates ()
返回设备上的可折叠状态列表。可通过“cmd device_state print-states”获取。
| 返回 | |
|---|---|
Set<DeviceFoldableState> |
|
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
getInstalledPackageNames
public abstract Set<String> getInstalledPackageNames ()
提取设备上存在的应用软件包名称。
| 返回 | |
|---|---|
Set<String> |
设备上当前安装的 String 个软件包名称的 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 Set<String> getMainlineModuleInfo ()
获取有关设备上安装的 Mainline 模块的信息。
| 返回 | |
|---|---|
Set<String> |
设备上当前安装的 String 个 Mainline 模块的 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 (String userType)
获取给定用户类型的支持用户数量上限。默认值为 0。
| 参数 | |
|---|---|
userType |
String:用户类型,如 UserManager 中所定义,例如“android.os.usertype.full.SECONDARY”。 |
| 返回 | |
|---|---|
int |
一个整数,表示指定用户类型的支持用户数 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
getMaxNumberOfUsersSupported
public abstract int getMaxNumberOfUsersSupported ()
此方法已废弃。
使用 getMaxNumberOfUsersSupported(String userType) 获取给定用户类型支持的最大用户数。
获取支持的可切换用户的最大数量(不包括 Guest)。在 API 版本 36 之后,不包括不可切换的用户(例如个人资料)。默认值为 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 |
|
getRemainingCreatableUserCount
public abstract int getRemainingCreatableUserCount (String userType)
返回可在相应设备上创建的指定用户类型的用户数量。
| 参数 | |
|---|---|
userType |
String:用户类型,如 UserManager 中所定义,例如“android.os.usertype.full.SECONDARY”。 |
| 返回 | |
|---|---|
int |
可添加的指定用户类型的用户数量 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
getScreenshot
public abstract InputStreamSource getScreenshot (Long displayId, String format, boolean rescale)
以支持的格式从指定显示 ID 的设备中抓取屏幕截图。允许重新缩放以支持较小的尺寸
| 参数 | |
|---|---|
displayId |
Long:要从中获取屏幕截图的屏幕的显示 ID。 |
format |
String:支持 PNG、JPEG |
rescale |
boolean:是否应调整屏幕截图大小以减小生成的图片的大小 |
| 返回 | |
|---|---|
InputStreamSource |
如果屏幕截图成功,则为屏幕截图的 InputStreamSource 格式,否则为 null。 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
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 (String format)
从设备中抓取屏幕截图。 建议使用 getScreenshot(format) 并采用 JPEG 编码,以缩小文件大小
| 参数 | |
|---|---|
format |
String:支持 PNG、JPEG |
| 返回 | |
|---|---|
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 ()
从设备中抓取屏幕截图。
| 返回 | |
|---|---|
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 Set<String> getUninstallablePackageNames ()
获取可卸载的应用软件包名称。目前,此属性定义为非系统软件包和更新的系统软件包。
| 返回 | |
|---|---|
Set<String> |
设备上当前安装的不可卸载的 String 软件包名称的 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 Map<Integer, UserInfo> getUserInfos ()
获取设备上 useId 到 UserInfo 的映射。如果设备的输出不符合预期,将抛出 DeviceRuntimeException。
| 返回 | |
|---|---|
Map<Integer, UserInfo> |
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 |
|
getUserVisibleOnDisplay
public abstract int getUserVisibleOnDisplay (int displayId)
获取指定显示屏上可见用户的用户 ID。
| 参数 | |
|---|---|
displayId |
int:显示屏的 ID。 |
| 返回 | |
|---|---|
int |
指定显示屏上可见用户的用户 ID。它不会区分可见的后台用户和当前的前台用户,因为这两种类型的用户都是可见的。为了区分,请进一步与 getCurrentUser() 的结果进行比较。 |
| 抛出 | |
|---|---|
|
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,
boolean grantPermissions,
String... extraArgs)在设备上安装 Android 软件包。
注意:只有需要在安装时明确控制授予运行时权限的使用情形才应调用此函数。
| 参数 | |
|---|---|
packageFile |
File:要安装的 APK 文件 |
reinstall |
boolean:如果应执行重新安装,则为 true |
grantPermissions |
boolean:是否应在安装时授予所有运行时权限 |
extraArgs |
String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。 |
| 返回 | |
|---|---|
String |
一个包含错误代码的 String,如果成功则为 null。 |
| 抛出 | |
|---|---|
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 |
如果与设备的连接丢失且无法恢复。 |
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 |
如果成功,则为 null;否则为包含错误代码的 String。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
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 |
如果与设备的连接丢失且无法恢复。 |
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 (List<File> packageFiles,
boolean reinstall,
String... extraArgs)安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。 如需了解如何将 APK 拆分为多个文件,请参阅“https://developer.android.com/studio/build/configure-apk-splits”。
| 参数 | |
|---|---|
packageFiles |
List:本地 APK 文件 |
reinstall |
boolean:如果应执行重新安装,则为 true |
extraArgs |
String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。 |
| 返回 | |
|---|---|
String |
一个包含错误代码的 String,如果成功则为 null。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
UnsupportedOperationException |
如果设备上的平台不支持运行时权限。 |
installPackages
public String installPackages (List<File> packageFiles,
boolean reinstall,
boolean grantPermissions,
String... extraArgs)安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用,这些文件位于 Android 设备上。如需了解如何将 APK 拆分为多个文件,请参阅“https://developer.android.com/studio/build/configure-apk-splits”。
注意:只有需要在安装时明确控制授予运行时权限的使用情形才应调用此函数。
| 参数 | |
|---|---|
packageFiles |
List:要安装的远程 APK 文件路径 |
reinstall |
boolean:如果应执行重新安装,则为 true |
grantPermissions |
boolean:是否应在安装时授予所有运行时权限 |
extraArgs |
String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。 |
| 返回 | |
|---|---|
String |
一个包含错误代码的 String,如果成功则为 null。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
UnsupportedOperationException |
如果设备上的平台不支持运行时权限。 |
installPackagesForUser
public String installPackagesForUser (List<File> packageFiles,
boolean reinstall,
int userId,
String... extraArgs)为指定用户安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。如需了解如何将 APK 拆分为多个文件,请参阅“https://developer.android.com/studio/build/configure-apk-splits”。
| 参数 | |
|---|---|
packageFiles |
List:本地 APK 文件 |
reinstall |
boolean:如果应执行重新安装,则为 true |
userId |
int:要安装的整数用户 ID。 |
extraArgs |
String:要传递的可选额外实参。如需了解可用的选项,请参阅“adb shell pm -h”。 |
| 返回 | |
|---|---|
String |
一个包含错误代码的 String,如果成功则为 null。 |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
UnsupportedOperationException |
如果设备上的平台不支持运行时权限。 |
installPackagesForUser
public String installPackagesForUser (List<File> packageFiles,
boolean reinstall,
boolean grantPermissions,
int userId,
String... extraArgs)为指定用户安装由多个 APK 文件(一个主软件包和额外的拆分软件包)组成的 Android 应用。如需了解如何将 APK 拆分为多个文件,请参阅“https://developer.android.com/studio/build/configure-apk-splits”。
注意:只有需要在安装时明确控制授予运行时权限的使用情形才应调用此函数。
| 参数 | |
|---|---|
packageFiles |
List:本地 APK 文件 |
reinstall |
boolean:如果应执行重新安装,则为 true |
grantPermissions |
boolean:是否应在安装时授予所有运行时权限 |
userId |
int:要安装的整数用户 ID。 |
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 ()
返回相应设备是否支持多个可切换的用户,这些用户拥有各自的登录信息和可自定义的空间。
请注意,即使值为 false,只要不需要登录界面,仍有可能支持多位用户;例如,配置文件可能仍受支持,因为它们不需要登录界面。
此命令还会检查 config_enableMultiUserUI。根据需求,我们可以假设满足此条件的设备已配置为允许通过 adb 添加次要用户。
| 返回 | |
|---|---|
boolean |
设备是否支持多个可切换的用户。 |
| 抛出 | |
|---|---|
|
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 已启用,则为 true。false(如果已停用) |
| 抛出 | |
|---|---|
DeviceNotAvailableException |
如果与设备的连接丢失且无法恢复。 |
listDisplayIds
public abstract Set<Long> listDisplayIds ()
收集设备上“dumpsys SurfaceFlinger”报告的可用显示屏 ID 列表。
| 返回 | |
|---|---|
Set<Long> |
显示屏列表。默认值始终返回默认显示值 0。 |
| 抛出 | |
|---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
listDisplayIdsForStartingVisibleBackgroundUsers
public abstract Set<Integer> listDisplayIdsForStartingVisibleBackgroundUsers ()
获取可用于 start a user visible in the background 的显示屏列表。
| 返回 | |
|---|---|
Set<Integer> |
|
| 抛出 | |
|---|---|
DeviceNotAvailableException |
|
listUsers
public abstract ArrayList<Integer> listUsers ()
获取设备上的用户列表。如果设备的输出不符合预期,将抛出 DeviceRuntimeException。
| 返回 | |
|---|---|
ArrayList<Integer> |
用户 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 |
如果成功,则为 null;否则为包含错误代码的 String。 |
| 抛出 | |
|---|---|
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 |
|