ITestDevice

public interface ITestDevice
implements INativeDevice

com.android.tradefed.device.ITestDevice


為 ddmlib IDevice 提供可靠且層級更高的 API。

按照設定時間重試裝置指令,並提供裝置復原功能 介面。

摘要

巢狀類別

class ITestDevice.ApexInfo

簡單的結構體類別,用於儲存單一 APEX 的相關資訊

class ITestDevice.MountPointInfo

簡單的結構體類別,可儲存單一掛接點的相關資訊

公用方法

abstract boolean canSwitchToHeadlessSystemUser()

傳回是否可切換至無頭 SYSTEM 使用者。

abstract boolean checkConnectivity()

請確認裝置已連上網路。

abstract boolean clearErrorDialogs()

嘗試關閉裝置 UI 目前顯示的任何錯誤對話方塊。

abstract void clearLastConnectedWifiNetwork()

清除上次連線的 Wi-Fi 網路。

abstract boolean connectToWifiNetwork( wifiSsidToPsk)

連線至 Wi-Fi 網路。

abstract boolean connectToWifiNetwork( wifiSsidToPsk, boolean scanSsid)

連線至 Wi-Fi 網路。

abstract boolean connectToWifiNetwork(String wifiSsid, String wifiPsk)

連線至 Wi-Fi 網路。

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

連線至 Wi-Fi 網路。

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,如果找不到,則傳回空值。

abstract getAndroidIds()

建立已找到相符使用者 ID 的 Android ID 對應。

abstract PackageInfo getAppPackageInfo(String packageName)

擷取裝置上安裝的套件相關資訊。

abstract getAppPackageInfos()

擷取裝置上安裝的套件資訊。

abstract InputStreamSource getBugreport()

從裝置擷取錯誤報告。

abstract InputStreamSource getBugreportz()

從裝置擷取錯誤報告。

abstract DeviceFoldableState getCurrentFoldableState()

傳回裝置目前的摺疊式裝置狀態;如果發生問題,則傳回空值。

abstract int getCurrentUser()

傳回目前執行中使用者的 ID。

abstract getFoldableStates()

傳回裝置上的摺疊式裝置狀態清單。

abstract getInstalledPackageNames()

擷取裝置中顯示的應用程式套件名稱。

abstract String getIpAddress()

取得裝置的 IP 位址。

abstract KeyguardControllerState getKeyguardState()

傳回物件即可取得鍵盤防護目前的狀態;如果不支援,則傳回空值。

abstract Integer getMainUserId()

傳回主要使用者 ID。

abstract getMainlineModuleInfo()

取得裝置上安裝的主系列模組相關資訊。

abstract int getMaxNumberOfRunningUsersSupported()

取得支援同時執行的使用者數量上限。

abstract int getMaxNumberOfUsersSupported()

取得支援的使用者人數上限。

abstract TestDeviceOptions getOptions()

擷取裝置的測試選項。

abstract Integer getPrimaryUserId()

傳回主要使用者 ID。

abstract InputStreamSource getScreenshot(String format, boolean rescale)

擷取裝置的螢幕截圖。

abstract InputStreamSource getScreenshot(String format)

擷取裝置的螢幕截圖。

abstract InputStreamSource getScreenshot(long displayId)

從特定裝置擷取螢幕截圖。

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 套件。

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 應用程式 (一個主要套件和額外的分割套件) 指定特定使用者的 IP 位址數量

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

安裝由多個 APK 檔案組成的 Android 應用程式 (一個主要套件和額外的分割套件) 指定特定使用者的 IP 位址數量

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」回報在裝置上的可用螢幕 ID 清單 SurfaceFlinger」。

abstract listDisplayIdsForStartingVisibleBackgroundUsers()

取得可用於 start a user visible in the background 的螢幕清單。

abstract listUsers()

取得裝置上的使用者清單。

abstract boolean logBugreport(String dataName, ITestLogger listener)

協助取得錯誤報告並記錄回報者的輔助方法。

default void notifySnapuserd(SnapuserdWaitPhase waitPhase)

通知裝置,等待 Snapuser 完成。

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)

在背景啟動特定使用者,並顯示在指定的螢幕畫面中 (即允許使用者 以在該畫面中啟動活動)。

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()

取得錯誤報告,並在 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 ()

傳回是否可切換至無頭 SYSTEM 使用者。

傳回
boolean

擲回
DeviceNotAvailableException

檢查連線能力

public abstract boolean checkConnectivity ()

請確認裝置已連上網路。

傳回
boolean true (如果裝置能正常連上網路), false

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

ClearErrorDialogs

public abstract boolean clearErrorDialogs ()

嘗試關閉裝置 UI 目前顯示的任何錯誤對話方塊。

傳回
boolean true表示未顯示任何對話方塊,或已成功清除對話方塊。 否則為 false

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

ClearLastConnectedWifiNetwork

public abstract void clearLastConnectedWifiNetwork ()

清除上次連線的 Wi-Fi 網路。啟動新的叫用時,應呼叫此方法 ,在裝置重新啟動後,避免連線到上一個測試中使用的 Wi-Fi 網路。

連上 Wi-Fi 網路

public abstract boolean connectToWifiNetwork ( wifiSsidToPsk)

連線至 Wi-Fi 網路。

開啟 Wi-Fi 並保持封鎖,直到連上其中一個 Wi-Fi 成功連線為止 wifiSsidToPsk 地圖中提供的網路。建立連線後,執行個體會嘗試 在每次重新啟動後還原連線,直到 ITestDevice#disconnectFromWifi() 或 系統會呼叫 ITestDevice#clearLastConnectedWifiNetwork()

參數
wifiSsidToPsk :Wi-Fi SSID 和密碼的對應表。

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。false 否則

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

連上 Wi-Fi 網路

public abstract boolean connectToWifiNetwork ( wifiSsidToPsk, 
                boolean scanSsid)

連線至 Wi-Fi 網路。

開啟 Wi-Fi 並保持封鎖,直到連上其中一個 Wi-Fi 成功連線為止 wifiSsidToPsk 地圖中提供的網路。建立連線後,執行個體會嘗試 在每次重新啟動後還原連線,直到 ITestDevice#disconnectFromWifi() 或 系統會呼叫 ITestDevice#clearLastConnectedWifiNetwork()

參數
wifiSsidToPsk :Wi-Fi SSID 和密碼的對應表。

scanSsid boolean:是否要掃描這個網路的隱藏 SSID。

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。false 否則

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

連上 Wi-Fi 網路

public abstract boolean connectToWifiNetwork (String wifiSsid, 
                String wifiPsk)

連線至 Wi-Fi 網路。

開啟 Wi-Fi 並保持封鎖,直到成功連上指定的 Wi-Fi 網路為止。 建立連線後,執行個體會在每次重新啟動後嘗試恢復連線 直到 ITestDevice#disconnectFromWifi()或 系統會呼叫 ITestDevice#clearLastConnectedWifiNetwork()

參數
wifiSsid String:要連線的 Wi-Fi 裝置 ID

wifiPsk String:PSK 通關密語;如果未加密則傳回空值

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。false 否則

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

連上 Wi-Fi 網路

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

連線至 Wi-Fi 網路。

開啟 Wi-Fi 並保持封鎖,直到成功連上指定的 Wi-Fi 網路為止。 建立連線後,執行個體會在每次重新啟動後嘗試恢復連線 直到 ITestDevice#disconnectFromWifi()或 系統會呼叫 ITestDevice#clearLastConnectedWifiNetwork()

參數
wifiSsid String:要連線的 Wi-Fi 裝置 ID

wifiPsk String:PSK 通關密語;如果未加密則傳回空值

scanSsid boolean:是否要掃描這個網路的隱藏 SSID。

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。false 否則

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

ConnectToWifiNetworkIf 需要

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

只會在裝置時連線的 connectToWifiNetwork(String, String) 變化版本 目前沒有網路連線

參數
scanSsid boolean:是否要掃描這個網路的隱藏 SSID

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。false 否則

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

ConnectToWifiNetworkIf 需要

public abstract boolean connectToWifiNetworkIfNeeded (String wifiSsid, 
                String wifiPsk)

只會在裝置時連線的 connectToWifiNetwork(String, String) 變化版本 目前沒有網路連線

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。false 否則

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

建立使用者

public abstract int createUser (String name)

以指定名稱和預設旗標 0 建立使用者。

參數
name String:要在裝置上建立的使用者

傳回
int 所建立使用者 ID 的整數

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

建立使用者

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

使用名字和提供的旗標建立使用者

參數
name String:要在裝置上建立的使用者

guest boolean:在建立期間啟用使用者標記 --guest

ephemeral boolean:在建立期間啟用使用者標記 -- short

傳回
int 已建立使用者的 ID

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

建立使用者

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

使用名字和提供的旗標建立使用者

參數
name String:要在裝置上建立的使用者

guest boolean:在建立期間啟用使用者標記 --guest

ephemeral boolean:在建立期間啟用使用者標記 -- short

forTesting boolean:在建立期間啟用測試標記 --for-測試

傳回
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

取消註冊裝置動作接收者

public abstract void deregisterDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)

移除已註冊的 IDeviceActionReceiver

參數
deviceActionReceiver IDeviceActionReceiver:即將移除的 IDeviceActionReceiver

停用鍵盤鎖

public abstract void disableKeyguard ()

嘗試停用鍵盤鎖。

首先,等待輸入調度作業準備就緒,這項作業會在 裝置回報的是 BOOT_COMPLETE,但顯然是以非同步方式回報,原因是目前的架構 導入方式偶爾會有競爭狀況。則指令會傳送至關閉鍵盤保護功能 (有效) 僅限不安全的應用程式)

擲回
DeviceNotAvailableException

停用網路監視器

public abstract boolean disableNetworkMonitor ()

停用裝置上的網路監控功能。

傳回
boolean true 表示已成功停用監控功能。false 就會失敗。

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

中斷從 Wifi 連線

public abstract boolean disconnectFromWifi ()

Wi-Fi 網路連線中斷。

這會從已知網路清單中移除所有網路,並停用 Wi-Fi。

傳回
boolean 如果 Wi-Fi 網路連線已成功中斷,請truefalse 會在連線失敗時收到訊息。

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

doFileExist

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:要轉儲的裝置程序名稱。

devicePath String:裝置上要放入傾印檔的路徑。這必須是以下位置 有權允許應用程式。

傳回
File 包含報表的 ERROR(/File)。如果發生錯誤,則為空值。

擲回
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

取得所有設定

public abstract  getAllSettings (String namespace)

傳回要求命名空間的鍵/值組合。

參數
namespace String:必須是 {"system", "secure", "global"} 的其中一個

傳回
鍵/值組合的對應如果不支援命名空間,則為空值。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getAndroidId

public abstract String getAndroidId (int userId)

找出並傳回與 UserId 相關聯的 android-id,如果找不到,則傳回空值。

參數
userId int

傳回
String

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getAndroidIds

public abstract  getAndroidIds ()

建立已找到相符使用者 ID 的 Android ID 對應。每位使用者都沒有保險 id 會找出與這個函式相關聯的 Android ID,因此部分使用者 ID 可能會與空值相符。

傳回
已找到相符的使用者 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 ()

擷取裝置上安裝的套件資訊。

傳回
裝置已安裝 ERROR(/List)/PackageInfo

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getBugreport

public abstract InputStreamSource getBugreport ()

從裝置擷取錯誤報告。

實作此做法可確保在沒有 sdcard 的裝置上能繼續運作 (或尚未掛載 sdcard 的地方)。

傳回
InputStreamSource InputStreamSource,可視需求產生錯誤報告內容。於 如果失敗,InputStreamSource 會產生空白的 ERROR(/InputStream)

getBugreportz

public abstract InputStreamSource getBugreportz ()

從裝置擷取錯誤報告。ZIP 格式錯誤報告內含主要錯誤報告, 其他有助於偵錯的記錄檔

僅支援「ADB 版本」>1.0.36 版

傳回
InputStreamSource 含有錯誤報告的 ZIP 檔案的 InputStreamSource,在 也會失敗

getCurrentFoldableState

public abstract DeviceFoldableState getCurrentFoldableState ()

傳回裝置目前的摺疊式裝置狀態;如果發生問題,則傳回空值。

傳回
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 ()

擷取裝置中顯示的應用程式套件名稱。

傳回
裝置目前已安裝 ERROR(/Set) 個套件名稱 (共 String 個)。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getIpAddress

public abstract String getIpAddress ()

取得裝置的 IP 位址。

傳回
String 裝置的 IP 位址;如果裝置沒有 IP 位址,則為 null

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

getKeyguardState

public abstract KeyguardControllerState getKeyguardState ()

傳回物件即可取得鍵盤防護目前的狀態;如果不支援,則傳回空值。

傳回
KeyguardControllerState 包含鍵盤鎖狀態快照的 KeyguardControllerState 而且如果系統不支援 Keyguard 查詢,則傳回空值。

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

getMainUserId

public abstract Integer getMainUserId ()

傳回主要使用者 ID。

傳回
Integer 主要使用者的 userId;如果沒有主要使用者,則為空值。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceRuntimeException 裝置的輸出內容不如預期。
DeviceNotAvailableException

getMainlineModuleInfo

public abstract  getMainlineModuleInfo ()

取得裝置上安裝的主系列模組相關資訊。

傳回
裝置上目前已安裝 ERROR(/Set) 個主要模組 (共 String 個)。

擲回
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 ()

傳回主要使用者 ID。

傳回
Integer 主要使用者的 userId;如果沒有主要使用者,則為空值。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceRuntimeException 裝置的輸出內容不如預期。
DeviceNotAvailableException

取得螢幕截圖

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

取得螢幕截圖

public abstract InputStreamSource getScreenshot (String format)

擷取裝置的螢幕截圖。 建議使用 getScreenshot(format) 而非 JPEG 編碼以縮小尺寸

參數
format String:支援的 PNG、JPEG

傳回
InputStreamSource InputStreamSource螢幕截圖的格式,或 null 螢幕截圖失敗

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

取得螢幕截圖

public abstract InputStreamSource getScreenshot (long displayId)

從特定裝置擷取螢幕截圖。格式為 PNG。

TODO:擴充上述實作方式來支援「format」然後「rescale」

參數
displayId long:要取得螢幕截圖的畫面 ID。

傳回
InputStreamSource 螢幕截圖的 InputStreamSource (如果格式為 null) 螢幕截圖失敗

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

取得螢幕截圖

public abstract InputStreamSource getScreenshot ()

擷取裝置的螢幕截圖。

傳回
InputStreamSource 螢幕截圖的 InputStreamSource,格式為 png 格式,如果則為 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 與使用者的 namespace:key 相關聯的值。如果找不到,則為空值。

擲回
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

取得解除安裝套件名稱

public abstract  getUninstallablePackageNames ()

擷取可解除安裝的應用程式套件名稱。目前定義的是 非系統套件和更新後的系統套件。

傳回
目前安裝於裝置上 ERROR(/Set) 的可解除安裝 String 套件名稱 裝置。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getUserFlags

public abstract int getUserFlags (int userId)

尋找並傳回特定使用者的旗標。 旗標定義於「android.content.pm.UserInfo」Android 開放原始碼專案中的類別。

參數
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

有功能

public abstract boolean hasFeature (String feature)

確認裝置是否支援該功能。

參數
feature String:應該為「feature:」的格式或「

傳回
boolean 如果有特徵,則為「true」,否則傳回「false」。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

安裝套件

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 導致與裝置之間的連線中斷且無法 已復原。

安裝套件

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 表示平台不支援執行階段權限 應用程式。

安裝套件

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

安裝由多個 APK 檔案 (一個主要和額外的分割套件) 組成的 Android 應用程式。 請參閱「https://developer.android.com/studio/build/configure-apk-splits」瞭解如何將 APK 分割成 多個檔案

參數
packageFiles :本機 APK 檔案

reinstall boolean:如果應執行重新安裝作業,則為 true

extraArgs String:要傳遞的額外引數。查看「ADB shell pm -h」期間 只要設定成「自動重新啟動」 和「在主機維護期間」選項即可

傳回
String 包含錯誤代碼的 String;如果成功則傳回 null

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。
UnsupportedOperationException 表示平台不支援執行階段權限 應用程式。

安裝套件

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

安裝由多個 APK 檔案組成的 Android 應用程式 (一個主要套件和額外的分割套件) 都儲存在 Android 裝置上詳情請見 「https://developer.android.com/studio/build/configure-apk-splits」瞭解如何將 APK 分割成 多個檔案

注意:僅可在需要明確控管執行階段權限的情況下, 安裝時間應呼叫這個函式。

參數
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 應用程式 (一個主要套件和額外的分割套件) 指定特定使用者的 IP 位址數量請參閱「https://developer.android.com/studio/build/configure-apk-splits」為 如何將 APK 分割成多個檔案?

參數
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 應用程式 (一個主要套件和額外的分割套件) 指定特定使用者的 IP 位址數量請參閱「https://developer.android.com/studio/build/configure-apk-splits」為 如何將 APK 分割成多個檔案?

注意:僅可在需要明確控管執行階段權限的情況下, 安裝時間應呼叫這個函式。

參數
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 裝置上詳情請見 「https://developer.android.com/studio/build/configure-apk-splits」瞭解如何將 APK 分割成 多個檔案

參數
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 裝置上詳情請見 「https://developer.android.com/studio/build/configure-apk-splits」瞭解如何將 APK 分割成 多個檔案

注意:僅可在需要明確控管執行階段權限的情況下, 安裝時間應呼叫這個函式。

參數
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

已安裝 isPackage

public abstract boolean isPackageInstalled (String packageName, 
                String userId)

查詢裝置的特定套件名稱和指定使用者 ID,確認其目前是否 無論該使用者是否安裝

參數
packageName String:要檢查是否已安裝的套件。

userId String:要檢查套件的安裝目標使用者 ID。如果為空值,主要使用者 不會使用 0

傳回
boolean 如果套件回報為已安裝,則為 True。否則傳回「否」。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

已安裝 isPackage

public abstract boolean isPackageInstalled (String packageName)

針對裝置查詢特定套件名稱,確認裝置目前是否已安裝。

參數
packageName String

傳回
boolean 如果套件回報為已安裝,則為 True。否則傳回「否」。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

isUserRunning

public abstract boolean isUserRunning (int userId)

檢查特定使用者是否正在執行。

參數
userId int

傳回
boolean 如果使用者正在執行,則為「true」,其他情況則為 false。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

使用者次要

public abstract boolean isUserSecondary (int userId)

根據旗標,傳回指定使用者是否為次要使用者。

參數
userId int

傳回
boolean 如果使用者是次要使用者,傳回 true,否則傳回 false。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

isUserVisible

public abstract boolean isUserVisible (int userId)

檢查指定的使用者是否可見。

「顯示」則是指與「人類」互動的使用者進而能 啟動活動 (通常在預設畫面中)。

參數
userId int

傳回
boolean

擲回
DeviceNotAvailableException

isUserVisibleOnDisplay

public abstract boolean isUserVisibleOnDisplay (int userId, 
                int displayId)

檢查指定的使用者是否出現在指定的螢幕上。

「顯示」則是指與「人類」互動的使用者進而能 在該畫面中啟動啟動活動

參數
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

isVisibleBackgroundUsers 支援

public abstract boolean isVisibleBackgroundUsersSupported ()

傳回裝置是否允許使用者在背景啟動畫面。

如果有,您可以呼叫 startVisibleBackgroundUser(int, int, boolean) 並傳遞 螢幕是由 listDisplayIdsForStartingVisibleBackgroundUsers() 傳回的螢幕。

傳回
boolean

擲回
DeviceNotAvailableException

isWifiEnabled

public abstract boolean isWifiEnabled ()

測試 Wi-Fi 是否已啟用。

檢查裝置是否已啟用 Wi-Fi。適合在進行測試前先確認 Wi-Fi 狀態 不應搭配 Wi-Fi 執行,例如。

傳回
boolean true (如果 Wi-Fi 已啟用)。false 表示停用

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

listDisplayId

public abstract  listDisplayIds ()

根據「dumpsys」回報在裝置上的可用螢幕 ID 清單 SurfaceFlinger」。

傳回
顯示清單。預設一律會傳回預設顯示 0。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

listDisplayIdsForBeginVisibleBackgroundUsers

public abstract  listDisplayIdsForStartingVisibleBackgroundUsers ()

取得可用於 start a user visible in the background 的螢幕清單。

傳回

擲回
DeviceNotAvailableException

列出使用者

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)

協助取得錯誤報告並記錄回報者的輔助方法。

參數
dataName String:要回報錯誤報告的名稱。

listener ITestLogger:用於記錄錯誤報告的 ITestLogger

傳回
boolean 如果記錄成功,則為「true」,否則傳回「false」。

通知 Snapuserd

public void notifySnapuserd (SnapuserdWaitPhase waitPhase)

通知裝置,等待 Snapuser 完成。

參數
waitPhase SnapuserdWaitPhase

註冊裝置動作接收者

public abstract void registerDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)

為這部裝置註冊 IDeviceActionReceiver

所有已註冊的IDeviceActionReceiver都會在裝置操作前收到通知 要在裝置動作結束和之後執行。

參數
deviceActionReceiver IDeviceActionReceiver:要註冊的 IDeviceActionReceiver

移除管理員

public abstract boolean removeAdmin (String componentName, 
                int userId)

移除特定使用者的裝置管理員,如果成功則傳回 true,否則傳回 false

參數
componentName String:待移除的裝置管理員。

userId int:裝置管理員所屬使用者。

傳回
boolean 如果成功,則為 True,否則傳回 false。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

移除擁有者

public abstract void removeOwners ()

盡可能移除所有現有的裝置設定檔擁有者。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

移除使用者

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

設定

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

設定

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)

在背景啟動特定使用者,並顯示在指定的螢幕畫面中 (即允許使用者 以在該畫面中啟動活動)。

注意: 這個指令不會檢查使用者是否存在、螢幕是否可用、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 提供者相符,則傳回「是」。否則傳回「否」。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

SwitchUser

public abstract boolean switchUser (int userId, 
                long timeout)

切換到另一個設有逾時期限的 UserId。 成功變更使用者後,嘗試停用鍵盤鎖。

參數
userId int

timeout long:在切換使用者失敗前等待 false。

傳回
boolean 如果新的 userId 與 userId 提供者相符,則傳回「是」。否則傳回「否」。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

採用錯誤報告

public abstract Bugreport takeBugreport ()

取得錯誤報告,並在 Bugreport 物件中傳回以進行處理。傳回空值 以備不時之需需要透過 Bugreport.close() 清除 Bugreport 物件中參照的檔案。

傳回
Bugreport

解除安裝套件

public abstract String uninstallPackage (String packageName)

從裝置上解除安裝 Android 套件。

參數
packageName String:要解除安裝的 Android 套件

傳回
String 包含錯誤代碼的 String;如果成功則傳回 null

擲回
DeviceNotAvailableException 導致與裝置之間的連線中斷且無法 已復原。

解除安裝套件 ForUser

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