Android 账户管理器:peekAuthToken
Android AccountManager: peekAuthToken
我在 Android 中实现了一个客户管理器,我在应用程序中经常使用 peekAuthToken 来获取令牌。
但是我对源代码有点困惑,在文档中它说:
Intended for use by the authenticator, not directly by applications.
为什么会这样,使用此方法获取 authToken 会出现什么问题?
peekAuthToken
在提供授权令牌之前内部检查两个 uid 是否相等:
- 请求授权令牌的应用程序的 uid
- 提供Authentication IBinder的应用uid(即管理账户的uid)
如果 uid 不同,您将收到 SecurityException。
换句话说,如果您将身份验证服务与应用程序的其余部分一起发布,应该没问题。 (尽管我仍然建议改用 getAuthToken
)。但是,如果您在一个应用程序中发布 Authenticator 并想在另一个应用程序中调用 peekAuthToken
,那将不起作用。
我在 Android 中实现了一个客户管理器,我在应用程序中经常使用 peekAuthToken 来获取令牌。
但是我对源代码有点困惑,在文档中它说:
Intended for use by the authenticator, not directly by applications.
为什么会这样,使用此方法获取 authToken 会出现什么问题?
peekAuthToken
在提供授权令牌之前内部检查两个 uid 是否相等:
- 请求授权令牌的应用程序的 uid
- 提供Authentication IBinder的应用uid(即管理账户的uid)
如果 uid 不同,您将收到 SecurityException。
换句话说,如果您将身份验证服务与应用程序的其余部分一起发布,应该没问题。 (尽管我仍然建议改用 getAuthToken
)。但是,如果您在一个应用程序中发布 Authenticator 并想在另一个应用程序中调用 peekAuthToken
,那将不起作用。