2012-01-08 38 views
5

tokens Khi hủy bỏ hiệu lực ủy quyền từ AccountManager sử dụng invalidateAuthToken,Tại sao AccountManager.invalidateAuthToken yêu cầu AccountType thay vì AccountName?

Q1: Tại sao chức năng đòi hỏi sự Type của tài khoản khi sử dụng Name của tài khoản dường như có ý nghĩa hơn?

Q2: Bằng cách đặt mã số Type, hãy invalidateAuthToken xóa tất cả mã thông báo xác thực theo loại tài khoản đó?

Trả lời

2

Q1: loại không phải là hạn chế như tên, nó ngầm chỉ ra rằng bạn đang đối phó với một nhóm và không phải là một cá nhân, IMHO.

accountType xác định loại tài khoản bạn đang tìm nạp trong tài khoản Người quản lý. ví dụ: "www.google" cho tài khoản google. được đưa ra một bó bên trong một callback, bạn tìm ra accountType bằng cách sử dụng:

private class GetAuthTokenCallback implements AccountManagerCallback<Bundle> { 
    public void run(AccountManagerFuture<Bundle> result) { 
     try { 
      bundle = result.getResult(); 
      String auth_token = bundle.getString(AccountManager.KEY_AUTHTOKEN); 
      String auth_account_type = bundle.getString(AccountManager.KEY_ACCOUNT_TYPE); 

Q2: theo developers guide, cú pháp là:

public void invalidateAuthToken (String accountType, String authToken) 

accountType KHÔNG phải là null, nhưng authToken có thể vô giá trị. nếu bạn bỏ qua authToken, bạn xóa tất cả mã thông báo cho tài khoản đó

Các vấn đề liên quan