1

Ich richte gerade ein Smart Lock für unsere TV-App in Nexus Player ein.Smart Lock SDK ruft Anmeldedatensätze nicht korrekt für NexusPlayer (Android TV) auf

Das Problem ist, dass obwohl ich bereits einige Credential-Sets für mein Google-Konto über unsere mobile App (die das Smart Lock SDK vor langer Zeit implementiert) gespeichert habe, kann ich nicht alle von ihnen in unserer TV-App abrufen. enter image description here

In unserer Tv-App kann ich nur eine dieser Anmeldeinformationen abrufen.

Und was noch seltsamer ist, dass wenn ich versuche, meint eine meiner Anmeldeinformationen über mein TV-App zu speichern, , die in der Cloud bestehenden bereits (das Konto beginnt mit 6249), wird es gespeichert werden und Sie können Siehe doppelte Anmeldeinformationen. Und danach kann ich diese Zugangsdaten von Smart Lock in der TV-App abrufen.

enter image description here enter image description here

Darauf hingewiesen, dass die Domain der App das gleiche für beide tv App und unsere mobile App ist.

+0

Klingt wie die Anwendungen das gleiche Paket, aber signiert sie mit dem gleichen Schlüsselspeicher? (Wenn Sie z. B. Anmeldeinformationen von der Android-Produktionsanwendung speichern, aber eine TV-App verwenden, die mit Debug- oder Entwicklungsschlüsseln erstellt wurde, werden die beiden aus Sicherheitsgründen nicht automatisch zugeordnet). Lass es mich wissen, sonst können wir genauer hinschauen! –

+0

oh, ja du hast recht, ich benutze verschiedene Keystores! Lass mich den gleichen Keystore ausprobieren und lass es wissen, ob es funktioniert, danke Steven;) – Qing

Antwort

-1

Sie können gespeicherte Anmeldeinformationen über die Methode CredentialsApi.request() abrufen.

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()); 
} 
} 
}); 

Handle mehrere Anmeldeinformationen gespeichert:

Wenn eine Benutzereingabe erforderlich ist, eine Berechtigung zu wählen, die getStatusCode() Methode gibt RESOLUTION_REQUIRED. Rufen Sie in diesem Fall die Methode des Statusobjekts auf, um den Benutzer aufzufordern, ein Konto auszuwählen. Rufen Sie dann die ausgewählten Anmeldeinformationen des Benutzers aus der onActivityResult() - Methode der Aktivität ab, indem Sie Credential.EXTRA_KEY an die Methode getParcelableExtra() übergeben.

Hier ist eine Dokumentation, wie Anmeldeinformationen speichern: https://developers.google.com/identity/smartlock-passwords/android/store-credentials#store_credentials