AccountSetupClient

public interface AccountSetupClient


用於管理裝置上受管理帳戶設定的用戶端。

生命週期整合需求:為正確處理 launchAuthenticationActivity 等作業所需的回呼結果,這個用戶端會使用 AndroidX Activity Result API。呼叫端必須透過下列方式,將這個用戶端與 Android 元件生命週期 (活動或片段) 整合:

  1. 使用 getLifecycleObserver 擷取觀察器。

  2. 向主機活動或片段的 Lifecycle 註冊這個觀察器,通常是在 onCreate 中 (例如 lifecycle.addObserver(client.lifecycleObserver))。

狀態更新:如要接收非同步帳戶設定狀態變更通知,通話應用程式必須:

  1. 導入 AccountSetupListener 介面。

  2. 提供實作項目,用於處理收到的狀態更新。

  3. 擴充 NotificationReceiverService 並提供 AccountSetupListener 例項。

  4. 將擴充的 NotificationReceiverService 類別新增至 AndroidManifest.xml,並確認已匯出。

使用 AccountSetupClientFactory 建立這個用戶端的例項。

摘要

公用方法

abstract @NonNull AccountSetupAttempt
cancelAccountSetupAttempt(
    @NonNull CancelAccountSetupAttemptRequest cancelAccountSetupAttemptRequest
)

取消指定的帳戶設定嘗試。

abstract @NonNull ListenableFuture<@NonNull AccountSetupAttempt>

取消指定的帳戶設定嘗試。

abstract @NonNull LifecycleObserver

負責處理這個用戶端生命週期相關設定的 LifecycleObserver

abstract @NonNull AccountSetupAttempt
launchAuthenticationActivity(
    @NonNull LaunchAuthenticationActivityRequest launchAuthenticationActivityRequest
)

啟動 Minute Maid 活動來驗證使用者,或啟動帳戶挑選器 (如果裝置上已有帳戶)。

abstract @NonNull ListenableFuture<@NonNull AccountSetupAttempt>

啟動 Minute Maid 活動來驗證使用者,或啟動帳戶挑選器 (如果裝置上已有帳戶)。

abstract @NonNull List<@NonNull AccountSetupAttempt>

列出所有帳戶設定嘗試。

abstract @NonNull ListenableFuture<@NonNull List<@NonNull AccountSetupAttempt>>

列出所有帳戶設定嘗試。

abstract @NonNull AccountSetupAttempt
startAccountSetup(
    @NonNull StartAccountSetupRequest startAccountSetupRequest
)

開始設定帳戶。

abstract @NonNull ListenableFuture<@NonNull AccountSetupAttempt>
startAccountSetupFuture(
    @NonNull StartAccountSetupRequest startAccountSetupRequest
)

開始設定帳戶。

公用方法

cancelAccountSetupAttempt

abstract @NonNull AccountSetupAttempt cancelAccountSetupAttempt(
    @NonNull CancelAccountSetupAttemptRequest cancelAccountSetupAttemptRequest
)

取消指定的帳戶設定嘗試。

參數
@NonNull CancelAccountSetupAttemptRequest cancelAccountSetupAttemptRequest

要求取消帳戶設定嘗試。

傳回
@NonNull AccountSetupAttempt

更新帳戶設定的嘗試。

cancelAccountSetupAttemptFuture

abstract @NonNull ListenableFuture<@NonNull AccountSetupAttemptcancelAccountSetupAttemptFuture(
    @NonNull CancelAccountSetupAttemptRequest cancelAccountSetupAttemptRequest
)

取消指定的帳戶設定嘗試。

參數
@NonNull CancelAccountSetupAttemptRequest cancelAccountSetupAttemptRequest

要求取消帳戶設定嘗試。

傳回
@NonNull ListenableFuture<@NonNull AccountSetupAttempt>

ListenableFuture 包裝結果。這可以是

  • 成功包裝更新帳戶設定嘗試的未來。

  • 如果找不到帳戶設定嘗試,或帳戶設定嘗試已處於最終狀態 (錯誤或成功),則為失敗的 Future。

getLifecycleObserver

abstract @NonNull LifecycleObserver getLifecycleObserver()

負責處理這個用戶端生命週期相關設定的 LifecycleObserver

這個觀察器必須向代管這個用戶端例項的 Activity 或 Fragment 的 Lifecycle 註冊 (例如 lifecycle.addObserver(...) 通常會在主機的 onCreate 中呼叫。

註冊這個觀察器後,用戶端就能正確初始化內部元件,特別是處理 launchAuthenticationActivity 結果所需的 androidx.activity.result.ActivityResultLauncher。如果未註冊這個觀察程式,嘗試啟動驗證活動時就會發生錯誤。

launchAuthenticationActivity

abstract @NonNull AccountSetupAttempt launchAuthenticationActivity(
    @NonNull LaunchAuthenticationActivityRequest launchAuthenticationActivityRequest
)

啟動 Minute Maid 活動來驗證使用者,或啟動帳戶挑選器 (如果裝置上已有帳戶)。

參數
@NonNull LaunchAuthenticationActivityRequest launchAuthenticationActivityRequest

啟動驗證活動的要求。要求必須包含處於 AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED_INFORMATION 狀態的帳戶設定嘗試。

擲回
java.lang.SecurityException

如果來電者不是裝置擁有者或設定檔擁有者。

com.google.android.managementapi.accountsetup.AccountSetupInvalidStateException

如果帳戶設定嘗試並非處於 AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED_INFORMATION 狀態。

launchAuthenticationActivityFuture

abstract @NonNull ListenableFuture<@NonNull AccountSetupAttemptlaunchAuthenticationActivityFuture(
    @NonNull LaunchAuthenticationActivityRequest launchAuthenticationActivityRequest
)

啟動 Minute Maid 活動來驗證使用者,或啟動帳戶挑選器 (如果裝置上已有帳戶)。

參數
@NonNull LaunchAuthenticationActivityRequest launchAuthenticationActivityRequest

啟動驗證活動的要求。要求必須包含處於 AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED_INFORMATION 狀態的帳戶設定嘗試。

傳回
@NonNull ListenableFuture<@NonNull AccountSetupAttempt>

ListenableFuture 包裝結果。這可以是

  • 如果成功,則為包含帳戶設定嘗試作業的 IN_PROGRESS 狀態的成功 Future。

  • 如果呼叫端不是裝置擁有者或設定檔擁有者,則會包裝 SecurityException 的失敗 future。

  • 如果帳戶設定嘗試並非處於 AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED_INFORMATION 狀態,則失敗的 Future 會包裝 AccountSetupInvalidStateException

listAccountSetupAttempts

abstract @NonNull List<@NonNull AccountSetupAttemptlistAccountSetupAttempts()

列出所有帳戶設定嘗試。系統只會傳回最近 20 次的帳戶設定嘗試。

傳回
@NonNull List<@NonNull AccountSetupAttempt>

所有帳戶設定嘗試的清單。

listAccountSetupAttemptsFuture

abstract @NonNull ListenableFuture<@NonNull List<@NonNull AccountSetupAttempt>> listAccountSetupAttemptsFuture()

列出所有帳戶設定嘗試。系統只會傳回最近 20 次的帳戶設定嘗試。

startAccountSetup

abstract @NonNull AccountSetupAttempt startAccountSetup(
    @NonNull StartAccountSetupRequest startAccountSetupRequest
)

開始設定帳戶。

注意:這個方法會將 android.app.admin.DevicePolicyManager.DELEGATION_APP_RESTRICTIONS 範圍委派給 Android 裝置政策應用程式,允許該應用程式代表呼叫管理員管理應用程式限制。帳戶設定完成後,系統就會移除 Android Device Policy 的這項委派範圍。

參數
@NonNull StartAccountSetupRequest startAccountSetupRequest

要求開始設定帳戶。

傳回
@NonNull AccountSetupAttempt

嘗試設定帳戶。

startAccountSetupFuture

abstract @NonNull ListenableFuture<@NonNull AccountSetupAttemptstartAccountSetupFuture(
    @NonNull StartAccountSetupRequest startAccountSetupRequest
)

開始設定帳戶。

注意:這個方法會將 android.app.admin.DevicePolicyManager.DELEGATION_APP_RESTRICTIONS 範圍委派給 Android 裝置政策應用程式,允許該應用程式代表呼叫管理員管理應用程式限制。帳戶設定完成後,系統就會移除 Android Device Policy 的這項委派範圍。

參數
@NonNull StartAccountSetupRequest startAccountSetupRequest

要求開始設定帳戶。

傳回
@NonNull ListenableFuture<@NonNull AccountSetupAttempt>

ListenableFuture 包裝結果。這可以是