Se o app que usa o Smart Lock para senhas compartilhar um banco de dados de usuários com sua ou se o app e site usam provedores de login federados, como Login do Google, é possível associar o app ao site para que os usuários salvam suas credenciais uma vez e fazem login automaticamente nos dois e o site.
Para associar um app a um site, declare as associações hospedando um arquivo JSON Digital Asset Links no seu site e adicionando um link para o arquivo Digital Asset Link ao manifesto do app.
Ao hospedar uma declaração do Digital Asset Links no seu site, você também ativa seu site para compartilhar o preenchimento automático dados com seu app ao executar no Android 8.0 e versões mais recentes.
Pré-requisitos
O domínio de login do seu site precisa estar disponível por HTTPS.
Associar o app ao site
- Crie um arquivo JSON Digital Asset Links. - Por exemplo, para declarar que o site - https://signin.example.come um app Android com o nome de pacote- com.examplepode compartilhar login credenciais, crie um arquivo chamado- assetlinks.jsoncom o seguinte conteúdo:- [{ "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "https://signin.example.com" } }, { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "android_app", "package_name": "com.example", "sha256_cert_fingerprints": [ "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B" ] } }]- O campo - relationé uma matriz de uma ou mais strings que descrevem o relacionamento que está sendo declarado. Para declarar que apps e sites compartilham credenciais de login, especifique a string- delegate_permission/common.get_login_creds.- O campo - targeté um objeto que especifica o recurso a que a declaração se aplica. Os campos a seguir identificam um site:- namespace- web- site- O URL do site, no formato - https://domain[:optional_port]para exemplo:- https://www.example.com.- O domain precisa ser totalmente qualificado. optional_port deve ser omitido ao usar a porta 443 para HTTPS. - Um destino - sitesó pode ser um domínio raiz. Não é possível limitar uma associação de app a um subdiretório específico. Não inclua um caminho no URL, como uma barra final.- Não é esperado que os subdomínios apresentem correspondências: ou seja, se você especificar domain como - www.example.com, o domínio- www.counter.example.comnão será associado ao app.- Os campos a seguir identificam um app Android. - namespace- android_app- package_name- Nome do pacote declarado no manifesto do app. Por exemplo, - com.example.android- sha256_cert_fingerprints- As impressões digitais SHA256 do certificado de assinatura do seu app Você pode use o seguinte comando para gerar a impressão digital: - $ keytool -list -v -keystore my-release-key.keystore - Consulte a referência do Digital Asset Links para mais detalhes. 
- Hospede o arquivo JSON do Digital Assets Link no seguinte local no domínio de login: - https://domain[:optional_port]/.well-known/assetlinks.json - Por exemplo, se o domínio de login for - signin.example.com, hospede o arquivo JSON em- https://signin.example.com/.well-known/assetlinks.json.- O tipo MIME do arquivo Digital Assets Link precisa ser JSON. Verifique se o servidor envia um cabeçalho - Content-Type: application/jsonna resposta.
- Verifique se o host permite que o Google recupere o arquivo do Digital Asset Link. Se você tiver um arquivo - robots.txt, ele precisa permitir que o agente do Googlebot recupere- /.well-known/assetlinks.json. A maioria dos sites pode simplesmente permitir que qualquer agente automatizado recupere arquivos no caminho- /.well-known/para que outros serviços possam acessar os metadados nesses arquivos:- User-agent: * Allow: /.well-known/ 
- Declarar a associação no app Android. - Adicione a seguinte linha ao arquivo de manifesto em - <application>:- <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
- Adicione um recurso de string - asset_statementsao arquivo- strings.xml. A string- asset_statementsé um objeto JSON que especifica os arquivos- assetlinks.jsona serem carregados. É necessário fazer o escape de quaisquer apóstrofos e aspas que você usa na string. Exemplos:- <string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>- > GET /.well-known/assetlinks.json HTTP/1.1 > User-Agent: curl/7.35.0 > Host: signin.example.com < HTTP/1.1 200 OK < Content-Type: application/json
 
- Publique o app na Google Play Store. Precisa ser lançado para o público canal para as associações serem selecionadas. 
- (Opcional) Preencha e envie formulário de afiliação do Smart Lock para senhas para indicar que você entrou ao longo do processo. O Google verifica periodicamente se as afiliações enviados pelo formulário realmente funcionam e podem entrar em contato com você em caso de para solucionar problemas fáceis e de produção. 
Quando a verificação for concluída, os usuários do app poderão salvar as credenciais em no seu app ou site e seja conectado automaticamente a ambos.
Exemplo: associar vários apps a um site
Você pode associar vários aplicativos a um site especificando cada aplicativo no
Arquivo do Digital Assets Link. Por exemplo, para associar com.example e
com.example.pro app com o site em https://signin.example.com/, especifique
os dois apps no arquivo JSON hospedado em
https://signin.example.com/.well-known/assetlinks.json:
[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]
Em seguida, declare a associação nos dois apps:
- Adicione a seguinte linha ao arquivo de manifesto em - <application>:- <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
- Adicione o seguinte recurso de string ao arquivo - strings.xml:- <string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
Exemplo: associar apps a vários sites
É possível associar aplicativos a vários sites especificando cada site na
Digital Assets Link e hospedando o arquivo em cada site. Por exemplo, para
associar os aplicativos com.example e com.example.pro ao site em
https://signin.example.com/ e https://m.example.com/, especifique
aplicativos e ambos os sites no arquivo JSON hospedado em
https://signin.example.com/.well-known/assetlinks.json:
[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://m.example.com"
  },
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]
Depois, no arquivo JSON hospedado em
https://m.example.com/.well-known/assetlinks.json, inclua a versão principal
Arquivo de links de recurso:
[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]
Por fim, declare a associação nos dois apps:
- Adicione a seguinte linha ao arquivo de manifesto em - <application>:- <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
- Adicione o seguinte recurso de string ao arquivo - strings.xml:- <string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>