Google Photo App如何在未经许可的情况下读取帐户?

How can the Google Photo App read the accounts without permission?

我正在实施类似于 Google 照片应用程序登录的安静登录。我没有在 Android Marshmallow 中测试我的应用程序。这需要权限:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

安静,没有问题,直到这里。但是,应用程序如何在不请求或授予应用程序设置中的权限的情况下读取我的帐户?

当我尝试使用时:

Account[] googleAccounts = AccountManager.get(context).getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);

我刚得到一个空数组。我做错了什么?

上周我用 Google 登录 (https://developers.google.com/identity/sign-in/android/offline-access) 编写了服务器端访问代码,您不需要 GET_ACCOUNTS

发生的情况是应用程序请求 Google Play 服务以获得您将发送到服务器的令牌。就这样。 Google Play 服务将访问帐户,弹出 UI 供用户 agree/confirm 等

所以,我假设这就是 Google 照片所使用的。另一个有效的替代答案是,它们是由 OS 的创建者开发和签名的系统应用程序,他们不能通过简单地访问受保护的 API 来做任何他们想做的事情。