我正在尝试创建一个与多个应用程序一起使用的AccountAuthenticator
(因此多个应用程序使用的系统设置中的一个帐户)。就像所有Google应用在系统上使用相同的帐户一样。
问题是:如何设置只需要安装一个应用程序(我们不知道它将是哪个),并且当安装第二个应用程序时,它可以重新使用现有帐户?
我使用这个AccountAuthenticator
创建了我的tutorial并嵌入到我们所有应用程序中包含的库项目中。只安装一个应用程序时,此工作正常。
一旦安装了第二个应用程序并且用户尝试登录,系统就会显示intent-chooser对话框,他可以在其中选择我们的两个应用程序(因为它们都使用具有相同intent-filter的相同authenticator-library)。这应该是问题here(但我还没有验证它)。
通过一些研究,你会偶然发现sharedUserId
和this tutorial。但是这个“解决方案”存在问题,你需要某种始终首先安装的应用程序,其中包含验证器。此外,使用新的Google Play应用程序签名sharedUserId
似乎不可能,因为每个应用程序都将使用不同的签名进行签名。
可能有一种方法可以授予其他应用程序访问身份验证器的权限,但仍然存在首先需要安装authenticator-app的问题(如建议的here)。
我怎么解决这个问题?我如何与多个应用程序共享AccountAuthenticator
而无需先安装应用程序?谷歌是如何做到的?他们在Play服务中有他们的身份验证员吗?
Google Play App签名允许您在多个应用中重复使用相同的签名,以解决此类问题。
当您看到此屏幕时,只需选择“重用签名密钥”: