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" />
最后两个,再一次,有点狡猾,把他们从不知道在哪里挖出来的。