AccountManager.blockingGetAuthToken()
正しい呼び出しです。Account
、および-- を渡しString authTokenType
ます。あなたの場合は、"android"
または"finance"
を選択します (探している文字列の値は明確に文書化されていません)。
onPerformSync()
アカウントを取得する簡単な方法は、同期アダプターを実装するクラスの呼び出しの一部として、すべてのクライアント通信を行うことです。SyncAdapter のセットアップに関するチュートリアルが多数あります。SyncAdapter を実行する過程で、おそらく次のようなパーミッションの混乱が発生します。
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" />
<uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.finance" />
これらの最後の 2 つは、ちょっとトリッキーですが、誰がどこから知っているかを掘り出しました。