AuthTokenを取得する
AuthTokenを取得するメソッド
AuthTokenを取得するメソッドは2つあることを確認している。
- blockingGetAuthToken
- GetAuthToken
そして、これらのメソッドはAccountManagerのメソッドである。
GetAuthTokenメソッドの使い方
open fun getAuthToken(account: Account!, authTokenType: String!, options: Bundle!, activity: Activity!, callback: AccountManagerCallback<Bundle!>!, handler: Handler!): AccountManagerFuture<Bundle!>!
参考
https://adsaria.hatenadiary.org/entries/2010/10/12
https://qiita.com/nein37/items/25ba6e5176118fae5f13
https://kinjouj.github.io/2013/01/android-accountmanager.html
//アカウントの取得 val accountName = "hoge" val accountPassword = "1234tweet" val account = Account(accountName, accountPassword) //AccountManagerインスタンスを生成する val am = AccountManager.get(activity) //getAuthTokenメソッドを実行する val authTokenType:String = "example.com.TestHogeHoge" am.getAuthToken( account, authTokenType, null, this@MainActivity, object: AccountManagerCallback<Bundle>{ override fun run(future: AccountManagerFuture<Bundle>){ val bundle = future.getResult() val authToken:String? = bundle.getString(AccountManager.KEY_AUTHTOKEN) Toast.makeText(this@SelectAccountActivity, authToken, Toast.LENGTH_LONG).show() } ,null)
getAuthTokenの場合には、第5引数にAccountManagerCallback<Bundle>を必要としている。 AccountManagerCallback<Bundle>にrunメソッドがあり、future: AccountManagerFuture<Bundle>を引数としている。getAuthTokenの返り値がAccountManagerFuture<Bundle>であり、その返り値がそのままAccountManagerCallbackのrunメソッドに渡される。AccountManagerCallbackのrunメソッドの返り値は存在しないのでAuthTokenを返り値として取得する事ができない。
一方、blockingGetAuthTokenメソッドはString!を戻り値としているためAuthTokenを取得するためには向いていると考えられる。
Authtokenを設定
一方でAuthTokenを取得するためにアカウントにAuthTokenを設定する必要がある。 それは以下のメソッドを使って実装すると思われる。
setAuthToken