尽pipe调用setSelectedAccountName(Android 6.0),GoogleAccountCredential名称仍为null

我已经使用安全的后端创build了一个端点,自从3月份以来,我一直在使用它创build一个应用程序(源文档在这里 )。 我最近在我的Android 6.0设备上安装了最新版本,并且popup了一个奇怪的错误(它在4.2.2和5.1上完美运行)。

具体的错误是:

IllegalArgumentException: the name must not be empty: null 

我追溯到凭证的错误,你可以看到下面的代码。 在Android 6.0帐户可能是“user@gmail.com”,但string“testing”原来是空的!

有什么具体的6.0改变了GoogleAccountCredential?

 public static GoogleAccountCredential getCredential(Context ctx) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); String account = prefs.getString(UserProfileHelper.PREF_USER_ACCOUNT, ""); GoogleAccountCredential credential = GoogleAccountCredential.usingAudience(ctx, "server:client_id:MY_ACCOUNT_NUMS.apps.googleusercontent.com") .setSelectedAccountName(account); String test = credential.getSelectedAccountName(); return credential; } 

Related of "尽pipe调用setSelectedAccountName(Android 6.0),GoogleAccountCredential名称仍为null"

是的,Android 6.0棉花糖,你现在需要在运行时请求权限https://developer.android.com/training/permissions/index.html

为了获得这些凭据,您需要CONTACTS组中的GET_ACCOUNTS权限

https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous

你将不得不在你的活动/片段中请求它,并处理任何有关你的应用程序的用户体验。