設定からアカウントを操作するアカウントアプリは、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_"。
ログイン画面が出るので適当にアカウントとパスワードを入力。
追加されたっぽい。
あらかじめつくっておいたAccountManager_を起動。
こういうのだが、
アカウントを入れてbutton1を押すと、
トークンが出てくる。
アカウントアプリにアカウントを登録することで、こういうことが出来る。
今回はさわりということでここまで。
Sample/android/AbstractAccountAuthenticator/AAA at master · bg1bgst333/Sample · GitHub