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

嘗試關閉目前在裝置 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,如果找不到,則傳回 null。

abstract getAndroidIds()

建立地圖,找出與使用者 ID 相符的 Android ID。

abstract PackageInfo getAppPackageInfo(String packageName)

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

abstract getAppPackageInfos()

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

abstract InputStreamSource getBugreport()

從裝置擷取錯誤報告。

abstract InputStreamSource getBugreportz()

從裝置擷取 bugreportz。

abstract DeviceFoldableState getCurrentFoldableState()

傳回裝置目前的折疊狀態,如果發生問題,則傳回 null。

abstract int getCurrentUser()

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

abstract getFoldableStates()

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

abstract getInstalledPackageNames()

擷取裝置上的應用程式套件名稱。

abstract String getIpAddress()

取得裝置的 IP 位址。

abstract KeyguardControllerState getKeyguardState()

傳回物件,以取得 Keyguard 的目前狀態;如果不支援,則傳回空值。

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(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 的 Map。

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 應用程式。

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)

輔助方法,用於取得錯誤報告並記錄至記錄器。

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)

在背景啟動特定使用者,並在指定螢幕上顯示 (也就是允許使用者在該螢幕上啟動活動)。

abstract boolean stopUser(int userId)

停止特定使用者。

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

停止特定使用者。

abstract boolean switchUser(int userId)

切換至另一個使用者 ID,並設定預設逾時時間。

abstract boolean switchUser(int userId, long timeout)

以提供的逾時期限做為期限,切換至其他 userId。

abstract Bugreport takeBugreport()

取得 bugreport,並在 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 ()

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

傳回
boolean true,如果沒有對話方塊或已成功清除對話方塊。否則傳回 false

擲回
DeviceNotAvailableException 如果與裝置的連線中斷且無法復原。

clearLastConnectedWifiNetwork

public abstract void clearLastConnectedWifiNetwork ()

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

connectToWifiNetwork

public abstract boolean connectToWifiNetwork ( wifiSsidToPsk)

連線至 Wi-Fi 網路。

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

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

傳回
boolean true 已成功連上 Wi-Fi 網路。false otherwise

擲回
DeviceNotAvailableException 如果與裝置的連線中斷且無法復原。

connectToWifiNetwork

public abstract boolean connectToWifiNetwork ( wifiSsidToPsk, 
                boolean scanSsid)

連線至 Wi-Fi 網路。

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

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

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

傳回
boolean true 已成功連上 Wi-Fi 網路。false otherwise

擲回
DeviceNotAvailableException 如果與裝置的連線中斷且無法復原。

connectToWifiNetwork

public abstract boolean connectToWifiNetwork (String wifiSsid, 
                String wifiPsk)

連線至 Wi-Fi 網路。

開啟 Wi-Fi 並封鎖,直到成功連上指定的 Wi-Fi 網路為止。連線完成後,執行個體會在每次重新啟動後嘗試還原連線,直到呼叫 ITestDevice.disconnectFromWifi()ITestDevice.clearLastConnectedWifiNetwork() 為止。

參數
wifiSsid String:要連線的 Wi-Fi SSID

wifiPsk String:PSK 密碼金鑰,如果未加密則為空值

傳回
boolean true 已成功連上 Wi-Fi 網路。false otherwise

擲回
DeviceNotAvailableException 如果與裝置的連線中斷且無法復原。

connectToWifiNetwork

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

連線至 Wi-Fi 網路。

開啟 Wi-Fi 並封鎖,直到成功連上指定的 Wi-Fi 網路為止。連線完成後,執行個體會在每次重新啟動後嘗試還原連線,直到呼叫 ITestDevice.disconnectFromWifi()ITestDevice.clearLastConnectedWifiNetwork() 為止。

參數
wifiSsid String:要連線的 Wi-Fi SSID

wifiPsk String:PSK 密碼金鑰,如果未加密則為空值

scanSsid boolean:是否掃描此網路的隱藏 SSID。

傳回
boolean true 已成功連上 Wi-Fi 網路。false otherwise

擲回
DeviceNotAvailableException 如果與裝置的連線中斷且無法復原。

connectToWifiNetworkIfNeeded

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

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

參數
scanSsid boolean:是否掃描此網路的隱藏 SSID

傳回
boolean true 已成功連上 Wi-Fi 網路。false otherwise

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

connectToWifiNetworkIfNeeded

public abstract boolean connectToWifiNetworkIfNeeded (String wifiSsid, 
                String wifiPsk)

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

傳回
boolean true 已成功連上 Wi-Fi 網路。false otherwise

擲回
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 true,如果已成功中斷 Wi-Fi 網路連線。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:要傾印堆積的裝置程序名稱。

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 相關資訊。

傳回
目前在裝置上啟用的 ApexInfoERROR(/Set)

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

getAllSettings

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

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

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

傳回
裝置上安裝的 PackageInfo ERROR(/List)

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

getBugreport

public abstract InputStreamSource getBugreport ()

從裝置中擷取錯誤報告。

這項功能的實作方式保證可在沒有 SD 卡 (或尚未掛載 SD 卡) 的裝置上繼續運作。

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

getBugreportz

public abstract InputStreamSource getBugreportz ()

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

僅支援「adb 版本」> 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 ()

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

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

擲回
DeviceNotAvailableException 如果與裝置的連線中斷且無法復原。

getMainUserId

public abstract Integer getMainUserId ()

傳回主要使用者 ID。

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

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

getMainlineModuleInfo

public abstract  getMainlineModuleInfo ()

取得裝置上安裝的主線程式模組相關資訊。

傳回
String 主線模組目前在裝置上安裝的 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 ()

傳回主要使用者 ID。

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

擲回
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 與使用者 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

getUninstallablePackageNames

public abstract  getUninstallablePackageNames ()

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

傳回
ERROR(/Set)String 套件名稱,目前已安裝在裝置上。

擲回
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 的對應 Map。如果裝置的輸出內容與預期不符,就會擲回 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 如果找到功能,則傳回「是」;否則傳回「否」。

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

installPackage

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

在裝置上安裝 Android 套件。

參數
packageFile File:要安裝的 APK 檔案

reinstall booleantrue (如果應執行重新安裝作業)

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 booleantrue (如果應執行重新安裝作業)

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 booleantrue (如果應執行重新安裝作業)

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 booleantrue (如果應執行重新安裝作業)

grantPermissions boolean:是否應在安裝時授予所有執行階段權限

userId int:要為其安裝的整數使用者 ID。

extraArgs String:要傳遞的選用額外引數。如要瞭解可用的選項,請參閱「adb shell pm -h」。

傳回
String String (含有錯誤代碼),或 null (成功時)。

擲回
DeviceNotAvailableException 如果與裝置的連線中斷且無法復原。
UnsupportedOperationException 如果裝置平台不支援執行階段權限。

installPackages

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

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

參數
packageFiles :本機 APK 檔案

reinstall booleantrue (如果應執行重新安裝作業)

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 booleantrue (如果應執行重新安裝作業)

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 booleantrue (如果應執行重新安裝作業)

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 booleantrue (如果應執行重新安裝作業)

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 booleantrue (如果應執行重新安裝作業)

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 booleantrue (如果應執行重新安裝作業)

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。如果為空值,系統會使用主要使用者零。

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

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

「可見」使用者是指與「人類」使用者互動的使用者,因此能夠啟動活動 (通常是在預設顯示畫面中)。

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

isVisibleBackgroundUsersSupported

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 如果與裝置的連線中斷且無法復原。

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)

輔助方法,用於取得錯誤報告並記錄至記錄器。

參數
dataName String:BugReport 回報的名稱。

listener ITestLogger:用於記錄錯誤報告的 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)

在背景啟動特定使用者,並在指定螢幕上顯示 (也就是允許使用者在該螢幕上啟動活動)。

注意: 這個指令不會檢查使用者是否存在、是否可顯示 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)

切換至另一個使用者 ID,並設定預設逾時時間。switchUser(int, long)

參數
userId int

傳回
boolean 如果新 userId 與 userId 供應工具相符,則為「是」。否則為 False。

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

switchUser

public abstract boolean switchUser (int userId, 
                long timeout)

以提供的逾時期限為期限,切換至其他 userId。在使用者變更成功後,嘗試停用螢幕鎖定。

參數
userId int

timeout long:等待後再傳回 false,表示切換使用者失敗。

傳回
boolean 如果新 userId 與 userId 供應工具相符,則為「是」。否則為 False。

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

takeBugreport

public abstract Bugreport takeBugreport ()

取得 bugreport,並將其傳回至 Bugreport 物件中加以處理。發生問題時傳回空值。您必須透過 Bugreport.close() 清除 Bugreport 物件中參照的檔案。

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