使用 AccountManager 实现系统内共享账号
前言
在開發過程中我們可能遇到自家應用間共享賬號的場景。例如 APP1 登錄成功后,啟動 APP2 時自動完成登錄并與 APP1 共享賬號信息。
Android 為我們提供了AccountManager 來管理賬號信息。
demo 地址
共享前提
原理
AccountManager是一個面向應用程序開發的組件,它提供了一套對應于 IAccountManager 協議的應用程序接口;這組接口通過Binder機制與系統服務AccountManagerService進行通信,協作完成帳號相關的操作。同時,AccountManager接收authenticators 提供的回調,以便在帳號操作完成之后向調用此帳號服務的業務返回對應的接口,同時觸發這個業務對結果的處理。
- authenticators 即注冊帳號服務的app;
- 業務調用方 即使用authenticators提供的帳號服務的第三方,也可以是authenticator自己
摘自:Android AccountManager帳號管理(一)
使用
該項目中有兩個 module ,app 對應注冊賬號服務的app,app1 對應使用賬號服務的第三方應用
-
在兩個應用的 manifest 中加入 <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 權限
-
在 app 中創建 authenticator.xml 文件,注意 accountType 的配置,這里的應用名及 icon 會在設備的 設置 -> 賬號 中顯示
-
在 app 中注冊一個 action 為“android.accounts.AccountAuthenticator”的 authenticator service,引入上一步創建的 xml 文件
-
在 app 中創建 authenticator
創建賬號
刪除賬號
第三方 app 獲取 用戶,token 等信息
關于我
我是 Flywith24,我的博客內容已經分類整理 在這里,點擊右上角的 Watch 可以及時獲取我的文章更新哦 😉
-
掘金
-
小專欄
-
Github
總結
以上是生活随笔為你收集整理的使用 AccountManager 实现系统内共享账号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一本读懂BERT(实践篇)
- 下一篇: 【教3妹学算法-每日3题(3)】 和至少