2

根据 Google Developers 网站,看起来应用程序可以将电子邮件和密码存储到 Smart Lock 中。有没有办法在 Smart Lock 中也存储电话号码?对于消息传递应用程序非常重要。

4

1 回答 1

2

是的,您可以在构造凭证对象时存储任何字符串作为标识符,包括电话号码和一般用户名,而不仅仅是电子邮件地址。确保以您的应用程序可以理解的格式存储任何电话号码,并且在您从 API 中检索它时可以使用;标识符不会以任何方式进行规范化。

Android 上的示例(类似网络):

String phoneNumber = "+1 (650) 253-0000"; 

Credential credential = new Credential.Builder(phoneNumber)
    .setPassword(password)
    .build();

Auth.CredentialsApi.save(apiClient, credential).setResultCallback(new ResultCallback() {
            public void onResult(Result result) {
                Status status = result.getStatus();
                if (status.isSuccess()) {
                    Log.d(TAG, "SAVE: OK");
                    // updates to existing credentials will succeed immediately
                } else if (status.hasResolution()) {
                    // confirmation is required to save a new phone number
                    status.startResolutionForResult(this, RC_SAVE);
...

请注意,如果您的基于电话号码的帐户没有密码,您可以将“帐户类型”设置为您自己的 URL,而不是凭据的密码(即.setAccountType(YOUR_URL)在构建凭据时)。

有关更多信息,请参阅使用 Smart Lock保存检索凭据的开发人员文档,并在评论中留下任何后续问题。

于 2016-03-21T18:18:29.603 回答