Android AccountManager返回空帐户

Android AccountManager返回空帐户,android,accountmanager,Android,Accountmanager,我有一个应用程序正在实现我自己的验证器,如本文所述。它的工作原理与预期的一样好。现在我需要从AccountManager获得google帐户,我是这样做的: Account[] accounts = AccountManager.get(this).getAccountsByType("com.google"); 问题是它返回一个空数组。但是当我在我的测试应用程序中使用这个代码片段时,它就像一个符咒一样工作。我看不出这些案例之间有什么实际区别。有人遇到过这个问题吗?我猜你没有得到许可。您可以

我有一个应用程序正在实现我自己的验证器,如本文所述。它的工作原理与预期的一样好。现在我需要从AccountManager获得google帐户,我是这样做的:

 Account[] accounts = AccountManager.get(this).getAccountsByType("com.google");

问题是它返回一个空数组。但是当我在我的测试应用程序中使用这个代码片段时,它就像一个符咒一样工作。我看不出这些案例之间有什么实际区别。有人遇到过这个问题吗?

我猜你没有得到许可。您可以在不使用它的情况下获得自己的应用程序帐户,但访问其他帐户需要权限

这比现在简单地请求清单中的
GET\u ACCOUNTS
要复杂一些,因为。现在,您必须动态地请求它们,并且向用户显示的
GET\u ACCOUNTS
消息非常神秘(它要求访问联系人,因为它是联系人权限组的一部分)


您可能希望研究使用(来自Google Play Services),这不需要任何权限。它向用户提供了一个包含请求帐户的对话框(并提供了添加新帐户的选项)。

我对这个问题有点困惑。您是说当您没有自己的验证器时,代码行就可以工作吗?或者你是说你自己的验证器可以用来获取你的帐户,但你永远无法获取谷歌帐户?@DanielLew第二个。如果我查询所有帐户,我只会从我的应用程序中得到一个帐户。你说得对!问题出在运行时权限中。我很困惑,因为我的测试应用程序被授予了权限。一旦它被撤销,两个应用程序的行为就变得一样了。非常感谢!顺便说一句,谢谢你关于Rx和Styleing=)的文章