我试图将用户的facebook凭据保存到谷歌智能锁,但我在测试中遇到困难。我能够显示提示保存一次,但在我进入我保存的密码(passwords.google.com)并删除保存的凭据后,提示不再出现了!
我进入谷歌设置,并确保从"永不保存"部分删除应用程序,但它仍然没有出现。当我调用Auth.CredentialsApi.save()时,它返回"null"的分辨率和消息"当前应用程序被列入黑名单"
仔细检查API返回的错误信息是否为"当前应用程序被列入黑名单",当在过去的保存对话框中选择"Never"时将触发该错误信息(详细信息在接受的答案中:需要检查设备上的所有帐户)。
一般来说,如果你在测试时没有看到保存对话框,这里有一些事情要检查:
-
尝试一个真实的设备(Android 4+),而不是模拟器,确保设备运行最新版本的Google Play Services(8+),并有一个活跃的互联网连接
-
验证设备至少有一个Google帐户,并且该帐户处于良好状态(不需要重新输入密码并符合任何公司政策要求),例如,检查该帐户的电子邮件推送通知是否被设备成功接收
-
在Google Setting app>密码智能锁 (pre-Marshmallow)或Settings>Google>密码智能锁 (Marshmallow)中,确保设备上至少有一个帐户显示为启用了密码智能锁功能,而不是显示为被密码加密禁用,请参阅相关问题
-
在相同的密码智能锁设置活动中,还检查应用程序不在设备上任何帐户的"永不保存"列表中(如接受的答案所示)。在设置活动UI的顶部有一个帐户选择器下拉。
-
检查
Auth.CredentialsApi.save()
回调正在被调用,CredentialRequestResult
getStatus().getStatusCode()
为RESOLUTION_REQUIRED
,您已经调用了startResolutionForResult()
。样例应用程序 -
注意,在对话框显示和用户交互完成之前,
startResolutionForResult()
所来自的Activity不能finish()
,调用onActivityResult()
-
还注意,使用具有与设备上的Google帐户匹配的电子邮件标识符和设置代替密码的帐户类型的凭据调用
Auth.CredentialsApi.save()
,保存将成功而不需要解析。类似于对具有匹配标识符的现有密码凭据的更新。查看您设备上的Google帐户passwords.google.com,查看当前保存的凭据
如果这些都不起作用,请尝试在设备上添加一个新的Google帐户,并尝试与智能锁集成的另一个应用程序,例如在您的设备上为纽约时报应用程序创建和保存一个基于电子邮件的帐户,并确定这是设备/帐户特定的问题还是您的应用程序实现的问题,并随时留下详细的评论。
关于在应用中测试智能锁API集成的完整指南,请查看此答案
我找到了一个解决方案,并希望张贴,以防其他人也有这个问题。问题是我的设备上有多个谷歌账户,我需要将我的应用从每个账户的"永不保存"列表中删除。
试试这个:
转到手机设置->Google->管理您的帐户->安全选项卡->向下滚动并选择密码管理器->单击右上方的设置图标。
你会看到被拒绝的应用程序和网站列表,从该列表中删除你的应用程序
帮助我解决错误:
保存失败。16:当前应用程序的保存提示被禁用。要恢复,请将此应用程序从"Never save"中删除。
本设备上所有帐户的"密码智能锁"设置。
当试图登录提示对话框没有弹出时,我在同样的问题上挣扎,并且onActivityResult没有触发,为了解决它,我从Manifest中删除了android:noHistory =" true"