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" />
Эти два последних, опять же, своего рода обман, вытащили их из того, кто знает, где.