AbstractAccountAuthenticator

設定からアカウントを操作するアカウントアプリは、AbstractAccountAuthenticatorを中心として作られる。

AbstractAccountAuthenticator  |  Android Developers
AccountManagerでアカウントを管理する - Qiita

今の段階で説明が難しいので、こういうものだということで。
まず、AndroidManifest.xmlは、

android.permission.AUTHENTICATE_ACCOUNTSがまず必要。
また、認証サービスAuthenticationServiceを作る必要がある。
intent-filterにactionでandroid.accounts.AccountAuthenticatorをセットしたり、authenticatorのxmlが必要だったり。

authenticator.xmlは、

設定のアカウントの部分に出てくるアイコンとかラベルとかそういうものの定義。
activity_main.xmlは、

EditText2つButtonが1つ。
AuthenticationService.javaは、

onCreateで、CustomAuthenticatorを生成して持つ。
onBindは、mCustomAuthenticator.getIBinder。
CustomAuthenticator.javaは、

ここが中心で、今回はアカウント追加と、トークン発行しかしないので、addAccountとgetAuthTokenを実装。
addAccountは、ログイン画面を起動するインテントを作成して、それをBundleに突っ込んで返す。
getAuthTokenは、アカウント、パスワード、トークン(今回は"TEST_TOKEN")を突っ込んで返す。
MainActivity.javaで、

アカウントとパスワードを入力して、buttonを押す。

アプリ一覧
アプリ一覧

アプリ一覧。
ここから設定を起動。

アカウントと同期を選択
アカウントと同期を選択

アカウントと同期を選択。

右上の'+'を押す
右上の'+'を押す

右上の'+'を押す。

自作のアカウントアプリは"AAA_"
自作のアカウントアプリは"AAA_"

自作のアカウントアプリは"AAA_"。

ログイン画面が出るので適当にアカウントとパスワードを入力
ログイン画面が出るので適当にアカウントとパスワードを入力

ログイン画面が出るので適当にアカウントとパスワードを入力。

追加されたっぽい
追加されたっぽい

追加されたっぽい。

あらかじめつくっておいたAccountManager_を起動
あらかじめつくっておいたAccountManager_を起動

あらかじめつくっておいたAccountManager_を起動。

こういうのだが
こういうのだが

こういうのだが、

アカウントを入れてbutton1を押すと
アカウントを入れてbutton1を押すと

アカウントを入れてbutton1を押すと、

トークンが出てくる
トークンが出てくる

トークンが出てくる。
アカウントアプリにアカウントを登録することで、こういうことが出来る。
今回はさわりということでここまで。

Sample/android/AbstractAccountAuthenticator/AAA at master · bg1bgst333/Sample · GitHub