我正在尝试将用户的Facebook凭据保存到Google Smart Lock,但我在测试时遇到了困难。我能够显示保存一次的提示,但在我进入保存的密码(passwords.google.com)并删除保存的凭据后,提示不再显示了!
我进入谷歌设置,并确保从“永不保存”部分删除该应用程序,但它仍然没有出现。当我调用Auth.CredentialsApi.save()时,它返回的分辨率为“null”并且消息“当前应用程序被列入黑名单”
答案 0 :(得分:11)
仔细检查API返回的错误消息是“当前应用程序是否已列入黑名单”,这将在保存对话框中过去的某个时刻选择“从不”时触发(接受答案中的详细信息) :需要检查设备上的所有帐户。
一般情况下,如果您在测试时没有看到保存对话框,请检查以下内容:
尝试使用真实设备(Android 4+)而不是模拟器,确保设备运行最新版本的Google Play服务(8+)且具有有效的互联网连接
验证设备是否至少有一个Google帐户并且该帐户处于良好状态(不需要重新输入密码并满足任何公司政策要求),例如,检查电子邮件推送通知该设备已成功收到该帐户
密码智能锁(Marshmallow前)或设置> Google>智能锁密码(Marshmallow),确保设备上至少显示一次帐户并启用智能锁密码功能,并且passphrase encryption不会将其显示为已停用,请参阅related question
在相同的密码智能锁设置活动中,还要检查该应用是否在设备上任何帐户的“从不保存”列表中(如接受的答案中所述) 。设置活动用户界面顶部有一个帐户选择器下拉列表。
检查是否正在调用Auth.CredentialsApi.save()
回调,CredentialRequestResult
getStatus().getStatusCode()
为RESOLUTION_REQUIRED
,您已拨打startResolutionForResult()
。 Sample app
请注意,在显示对话框并且用户互动完成之前,您startResolutionForResult()
不得finish()
的活动,请致电onActivityResult()
还要注意,使用包含与设备上的Google帐户匹配的电子邮件标识符的凭据调用Auth.CredentialsApi.save()
,并设置帐户类型代替密码,保存将成功,无需解析。类似于更新具有匹配标识符的现有密码凭证。查看设备上的Google帐户passwords.google.com,了解当前保存的凭据
如果这些都不起作用,请尝试向设备添加新的Google帐户,然后尝试使用Smart Lock集成的其他应用,例如为设备上的NYTimes应用创建并保存基于电子邮件的帐户并确定无论是设备/帐户特定问题还是应用实施问题,都可以随时留下详细评论。
有关在应用中测试Smart Lock API集成的完整指南,请查看this answer。
答案 1 :(得分:8)
我找到了一个解决方案,想要发帖以防其他人也遇到这个问题。问题是我的设备上有多个谷歌帐户,我需要从每个帐户的“从不保存”列表中删除我的应用程序。
答案 2 :(得分:0)
当尝试登录提示对话框没有弹出,并且没有触发onActivityResult来解决该问题时,我在同一问题上苦苦挣扎,我从清单中删除了android:noHistory =“ true” 够了。