Smart Lock SDK未正确检索NexusPlayer(Android TV)的凭据集

时间:2016-06-27 06:16:44

标签: android google-api google-play-services google-smartlockpasswords

我目前正在为nexus播放器中的电视应用设置智能锁。

问题是即使我已经通过我们的移动应用程序(很久以前实现了智能锁sdk)为我的Google帐户保存了少量凭据集,我也无法在我们的电视应用中检索所有这些凭据集。 enter image description here

在我们的电视应用中,我只能检索其中一个凭据。

甚至更奇怪的是,如果我尝试通过我的电视应用程序保存我的一个凭据,已经存在于云中(帐户以6249开头),它将被保存你可以看到重复的凭据。之后,我可以从电视应用程序中的智能锁中检索此凭据。

enter image description here enter image description here

注意到该应用的域名对于电视应用和我们的移动应用都是相同的。

1 个答案:

答案 0 :(得分:-1)

您可以通过CredentialsApi.request()方法检索已保存的凭据。

Auth.CredentialsApi.request(mCredentialsClient, mCredentialRequest).setResultCallback(
new ResultCallback<CredentialRequestResult>() {
@Override
public void onResult(CredentialRequestResult credentialRequestResult) {
if (credentialRequestResult.getStatus().isSuccess()) {
// See "Handle successful credential requests"
onCredentialRetrieved(credentialRequestResult.getCredential());
} else {
// See "Handle unsuccessful and incomplete credential requests"
resolveResult(credentialRequestResult.getStatus());
}
}
});

处理多个已保存的凭据:

当需要用户输入来选择凭证时,getStatusCode()方法会返回RESOLUTION_REQUIRED。在这种情况下,请调用状态对象的startResolutionForResult()方法以提示用户选择帐户。然后,通过将Credential.EXTRA_KEY传递给getParcelableExtra()方法,从活动的onActivityResult()方法中检索用户选择的凭据。

以下是如何存储凭据的文档:https://developers.google.com/identity/smartlock-passwords/android/store-credentials#store_credentials