ITestDevice

public interface ITestDevice
implements INativeDevice

com.android.tradefed.device.ITestDevice


提供可靠且稍高層級的 API 給 ddmlib IDevice

可設定裝置指令的重試次數,並為沒有回應的裝置提供裝置復原介面。

摘要

巢狀類別

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

Attempts to disable the keyguard.

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)

Find and return the android-id associated to a userId, null if not found.

abstract getAndroidIds()

建立與相符使用者 ID 相關聯的 Android ID 對應。

abstract PackageInfo getAppPackageInfo(String packageName)

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

abstract getAppPackageInfos()

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

abstract InputStreamSource getBugreport()

從裝置擷取錯誤報告。

abstract InputStreamSource getBugreportz()

從裝置擷取錯誤報告。

abstract DeviceFoldableState getCurrentFoldableState()

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

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

這個方法已淘汰。 UserManager 服務已淘汰 getPrimaryUser,請使用 ERROR(/android.os.UserManager#getMainUserId()) 取得第一個完整使用者,或使用 0 取得系統。請注意,無頭系統並非完整使用者。

abstract InputStreamSource getScreenshot(String format, boolean rescale)

擷取裝置的螢幕截圖。

abstract InputStreamSource getScreenshot(long displayId)

從指定顯示器 ID 的裝置擷取螢幕截圖。

abstract InputStreamSource getScreenshot(String format)

擷取裝置的螢幕截圖。

abstract InputStreamSource getScreenshot()

擷取裝置的螢幕截圖。

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

傳回所要求設定的值。

abstract String getSetting(String namespace, String key)

請參閱 getSetting(int, String, String),並在系統使用者上執行。

abstract getUninstallablePackageNames()

擷取可解除安裝的應用程式套件名稱。

abstract int getUserFlags(int userId)

找出並傳回指定使用者的檢舉。

abstract getUserInfos()

取得裝置上 useId 對應 UserInfo 的對應項。

abstract int getUserSerialNumber(int userId)

如果找到與 userId 相關聯的序號,則傳回該序號;否則傳回 -10000。

abstract boolean hasFeature(String feature)

檢查裝置是否支援特定功能。

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

在裝置上安裝 Android 套件。

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

在裝置上安裝 Android 套件。

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

為特定使用者在裝置上安裝 Android 套件。

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

為特定使用者在裝置上安裝 Android 套件。

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

以遞增模式安裝 APK。

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

安裝由多個 APK 檔案 (一個主要套件和額外的分割套件) 組成的 Android 應用程式。

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

在 Android 裝置上安裝由多個 APK 檔案 (一個主要檔案和額外的分割套件) 組成的 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)

在 Android 裝置上安裝由多個 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()

傳回裝置是否允許使用者在 ERROR(/java.android.view.Display#DEFAULT_DISPLAY) 中啟動可見的背景。

abstract boolean isVisibleBackgroundUsersSupported()

Returns whether the device allow users to be started visible in the background.

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 物件中傳回,以進行處理。

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 否則

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

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

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

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

connectToWifiNetworkIfNeeded

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

connectToWifiNetworkIfNeeded

public abstract boolean connectToWifiNetworkIfNeeded (String wifiSsid, 
                String wifiPsk)

這個變體只會在裝置目前沒有網路連線時連線。connectToWifiNetwork(String, String)

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

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

createUser

public abstract int createUser (String name)

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

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

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

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

createUser

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

使用指定名稱和提供的旗標建立使用者

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

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

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

傳回
int 所建立使用者的 ID

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

createUser

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

使用指定名稱和提供的旗標建立使用者

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

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

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

forTesting boolean:在建立期間啟用測試專用的旗標 --for-testing

傳回
int 所建立使用者的 ID

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

createUserNoThrow

public abstract int createUserNoThrow (String name)

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

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

傳回
int 建立的使用者 ID 整數,或錯誤時為 -1。

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

deregisterDeviceActionReceiver

public abstract void deregisterDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)

移除已註冊的 IDeviceActionReceiver

參數
deviceActionReceiver IDeviceActionReceiver:要移除的 IDeviceActionReceiver

disableKeyguard

public abstract void disableKeyguard ()

嘗試停用 Keyguard。

首先,請等待輸入調度作業準備就緒,這大約會在裝置回報 BOOT_COMPLETE 時發生 (顯然是非同步作業),因為目前的架構實作偶爾會出現競爭情況。然後傳送指令來關閉 Keyguard (僅適用於非安全裝置)

擲回
DeviceNotAvailableException

disableNetworkMonitor

public abstract boolean disableNetworkMonitor ()

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

傳回
boolean true (如果成功停用監控功能)。false (如果失敗)。

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

disconnectFromWifi

public abstract boolean disconnectFromWifi ()

中斷 Wi-Fi 網路連線。

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

傳回
boolean true (如果已成功中斷 Wi-Fi 網路連線)。false if disconnect failed.

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

傳回
裝置目前已啟用 ERROR(/Set) 組 (共 ApexInfo 組)

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

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

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

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

getBugreport

public abstract InputStreamSource getBugreport ()

從裝置擷取錯誤報告。

保證這項實作項目在沒有 SD 卡的裝置上 (或 SD 卡尚未掛接時) 仍可繼續運作。

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

getBugreportz

public abstract InputStreamSource getBugreportz ()

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

僅支援「adb version」> 1.0.36

傳回
InputStreamSource 包含 bugreportz 的 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 位址,或 null (如果裝置沒有 IP 位址)

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

getKeyguardState

public abstract KeyguardControllerState getKeyguardState ()

傳回物件即可取得 Keyguard 的目前狀態,如果系統不支援,則傳回空值。

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

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

getMainUserId

public abstract Integer getMainUserId ()

傳回主要使用者 ID。

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

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

getMainlineModuleInfo

public abstract  getMainlineModuleInfo ()

取得裝置上安裝的 Mainline 模組相關資訊。

傳回
裝置目前安裝的 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 ()

這個方法已淘汰。
UserManager 服務已淘汰 getPrimaryUser,請使用 ERROR(/android.os.UserManager#getMainUserId()) 取得第一個完整使用者 或系統的 0。請注意,無頭系統並非完整使用者。

傳回主要使用者 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 螢幕截圖的格式,或 null (如果螢幕截圖未成功)。InputStreamSource

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

getScreenshot

public abstract InputStreamSource getScreenshot (long displayId)

從指定顯示器 ID 的裝置擷取螢幕截圖。格式為 PNG。

TODO: extend the implementations above to support 'format' and 'rescale'

參數
displayId long:要擷取螢幕截圖的螢幕顯示 ID。

傳回
InputStreamSource 螢幕截圖的格式,或 null (如果螢幕截圖未成功)。InputStreamSource

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

getScreenshot

public abstract InputStreamSource getScreenshot (String format)

擷取裝置的螢幕截圖。 建議改用 getScreenshot(format),並採用 JPEG 編碼,以縮減大小

參數
format String:支援 PNG、JPEG

傳回
InputStreamSource 螢幕截圖的格式,或 null (如果螢幕截圖未成功)。InputStreamSource

擲回
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 與使用者命名空間:索引鍵相關聯的值。如果找不到,則為空值。

擲回
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 的對應項。如果裝置的輸出內容與預期不符,就會擲回 DeviceRuntimeException

傳回
UserInfo 物件清單。

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

getUserSerialNumber

public abstract int getUserSerialNumber (int userId)

如果找到與 userId 相關聯的序號,則傳回該序號;否則傳回 -10000。

參數
userId int

傳回
int

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

hasFeature

public abstract boolean hasFeature (String feature)

確認裝置是否支援某項功能。

參數
feature String:格式應為「feature:」或直接為「」。

傳回
boolean 如果找到特徵,則為 True,否則為 False。

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

installPackage

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

在裝置上安裝 Android 套件。

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

reinstall boolean:是否應執行重新安裝,true 表示是

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

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
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 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
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 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
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 如果裝置連線中斷且無法復原。
UnsupportedOperationException 如果裝置上的平台不支援執行階段權限。

installPackageWithIncrementalMode

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

以漸進模式安裝 APK。

參數
apkFiles File:要安裝的 APK 檔案。

extraArgs String

userId String

傳回
boolean

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

installPackages

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

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

參數
packageFiles :本機 APK 檔案

reinstall boolean:是否應執行重新安裝,true 表示是

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

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

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

installPackages

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

在 Android 裝置上安裝由多個 APK 檔案 (一個主要套件和額外的分割套件) 組成的 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 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

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

installPackagesForUser

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

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

參數
packageFiles :本機 APK 檔案

reinstall boolean:是否應執行重新安裝,true 表示是

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

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

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

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

installPackagesForUser

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

為特定使用者安裝由多個 APK 檔案 (一個主要檔案和額外的分割套件) 組成的 Android 應用程式。請參閱「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 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

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

installRemotePackages

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

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

參數
remoteApkPaths :遠端 APK 檔案路徑

reinstall boolean:是否應執行重新安裝,true 表示是

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

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

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

installRemotePackages

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

在 Android 裝置上安裝由多個 APK 檔案 (一個主要套件和額外的分割套件) 組成的 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 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
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:我們要檢查套件是否已為該使用者安裝。如果為空值,系統會使用主要使用者零。

傳回
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 清單。

傳回
螢幕清單。Default 一律會傳回預設螢幕 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:要回報錯誤報告的名稱。

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 如果新使用者 ID 與使用者 ID 供應商相符,則為 True。否則傳回「false」。

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

switchUser

public abstract boolean switchUser (int userId, 
                long timeout)

在提供的逾時期限內切換至其他使用者 ID。 使用者變更成功後,嘗試停用 Keyguard。

參數
userId int

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

傳回
boolean 如果新使用者 ID 與使用者 ID 供應商相符,則為 True。否則傳回「false」。

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

takeBugreport

public abstract Bugreport takeBugreport ()

擷取錯誤報告,並在 Bugreport 物件中傳回,以進行處理。如有問題,則傳回空值。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 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

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

waitForSnapuserd

public void waitForSnapuserd (SnapuserdWaitPhase currentPhase)

如果這是預期行為,請等待 snapuserd 完成作業。

參數
currentPhase SnapuserdWaitPhase

擲回
DeviceNotAvailableException