我有一个应用程序,它正在实现我自己的身份验证器,如这文章所述。而且效果很好。现在,我需要从AccountManager获得谷歌账户,我就是这样做的:
Account[] accounts = AccountManager.get(this).getAccountsByType("com.google");问题是它返回一个空数组。但是,当我在我的测试应用程序中使用这段代码时,没有所有的身份验证程序,它就像一种魅力。我看不出这些案子到底有什么区别。有人面对过这个问题吗?
发布于 2015-12-08 14:20:13
我猜你没有得到GET_ACCOUNTS的许可。您可以获得您自己的应用程序的帐户没有它,但访问其他帐户需要许可。
由于使用了GET_ACCOUNTS,这比在清单中简单地请求运行时权限要复杂一些。现在您必须动态地请求它们,并且显示给GET_ACCOUNTS用户的消息非常神秘(它要求访问联系人,因为它是联系人权限组的一部分)。
您可能需要考虑使用AccountPicker (来自Google服务),它不需要任何权限。它向具有请求帐户的用户提供一个对话框(并提供一个添加新帐户的选项)。
https://stackoverflow.com/questions/34157116
复制相似问题