Android 如何将一个帐户用于多个应用程序(AccountAuthenticator、sharedUserId、Google Play应用程序签名)?

Android 如何将一个帐户用于多个应用程序(AccountAuthenticator、sharedUserId、Google Play应用程序签名)?,android,accountmanager,android-app-signing,Android,Accountmanager,Android App Signing,我正在尝试创建一个AccountAuthenticator,用于我们的多个应用程序(因此多个应用程序使用系统设置中的一个帐户)。就像所有谷歌应用程序在系统上使用相同的帐户一样 问题是:我如何设置只需要安装一个应用程序(我们不知道将安装哪个应用程序),当安装第二个应用程序时,它可以重新使用现有帐户 我已经用它创建了我的AccountAuthenticator,并嵌入到一个库项目中,该项目包含在我们所有的应用程序中。当只安装了一个应用程序时,此功能可以正常工作 一旦安装了第二个应用程序并且用户尝试

我正在尝试创建一个
AccountAuthenticator
,用于我们的多个应用程序(因此多个应用程序使用系统设置中的一个帐户)。就像所有谷歌应用程序在系统上使用相同的帐户一样

问题是:我如何设置只需要安装一个应用程序(我们不知道将安装哪个应用程序),当安装第二个应用程序时,它可以重新使用现有帐户


我已经用它创建了我的
AccountAuthenticator
,并嵌入到一个库项目中,该项目包含在我们所有的应用程序中。当只安装了一个应用程序时,此功能可以正常工作

一旦安装了第二个应用程序并且用户尝试登录,系统就会显示“意向选择器”对话框,用户可以在其中选择我们的两个应用程序(因为它们都使用具有相同意向筛选器的相同身份验证程序库)。这应该也是问题所在(但我还没有验证)


通过一些研究,你会偶然发现和发现。但是这个“解决方案”有一个问题,那就是你需要某种总是先安装的应用程序,其中包含验证器。另外,新的Google Play应用程序签署一个
sharedUserId
似乎是不可能的,因为每个应用程序都将使用不同的签名

可能有一种方法可以授予其他应用对验证器的访问权限,但仍然存在需要首先安装验证器应用的问题(如建议的)



我怎样才能解决这个问题?如果不先安装持有帐户验证器的应用程序,如何与多个应用程序共享帐户验证器?谷歌是如何做到的?他们在Play服务中有验证器吗?

Google Play应用程序签名允许您在多个应用程序中重复使用相同的签名,正是为了解决这类问题

当您看到此屏幕时,只需选择“重用签名密钥”:

嗯,也许这是一个选择。但我已经超出了这一步,我想我不能再看到这个屏幕了。还有什么想法吗?如果你需要相同的签名密钥,你就只能这么做了。您可以在Play Console上与开发人员支持部门联系,看看他们是否可以更改您的选择。如果没有,您可以使用不同的软件包名称重新发布应用程序,并在没有任何用户的情况下获得正确的签名密钥。嗯,好的,这是供
sharedUserId
使用的。有没有其他办法让它工作?我认为即使使用相同的
sharedUserId
也会有意向选择器,对吗?谷歌是如何做到的?我是否需要使用带有验证器的应用程序并确保首先安装了验证器?我刚刚在Play Store上测试了一个新应用程序,并且我能够从我的其他应用程序中重用现有的应用程序签名密钥。因此,有一种方法可以让所有新应用程序使用相同的密钥,即使没有谷歌过去创建的密钥(他们不会给你)。@hardysim因为其中一个链接在这个问题上不起作用,我想问一个问题-为了在AccountManager中使用相同的帐户,是否需要使用相同的签名对两个应用程序进行签名?此外,sharedUserId已被弃用。