BioTrust.Maui
1.2.0
dotnet add package BioTrust.Maui --version 1.2.0
NuGet\Install-Package BioTrust.Maui -Version 1.2.0
<PackageReference Include="BioTrust.Maui" Version="1.2.0" />
<PackageVersion Include="BioTrust.Maui" Version="1.2.0" />
<PackageReference Include="BioTrust.Maui" />
paket add BioTrust.Maui --version 1.2.0
#r "nuget: BioTrust.Maui, 1.2.0"
#:package BioTrust.Maui@1.2.0
#addin nuget:?package=BioTrust.Maui&version=1.2.0
#tool nuget:?package=BioTrust.Maui&version=1.2.0
BioTrust.Maui
Validação biométrica facial para .NET MAUI: prova de vida, validação com documento, FaceMatch e controle de acesso, com a mesma API em todas as plataformas.
Requisitos
| Item | Valor |
|---|---|
| .NET | 9.0 ou superior |
| Android | minSdk 24 |
| iOS | 15.0, somente aparelho físico |
| Mac Catalyst / Windows | validação pelo SDK Web, em WebView |
| Credencial | UUID do cliente, obtido no Dashboard |
Instalação
dotnet add package BioTrust.Maui
Registre o pacote no MauiProgram:
builder.UseBioTrust();
O registro é obrigatório para o uso do BioTrustCameraView.
Android
A permissão de câmera vem declarada pelo SDK. A de internet é da aplicação:
<uses-permission android:name="android.permission.INTERNET" />
iOS
<key>NSCameraUsageDescription</key>
<string>A câmera é utilizada para a validação da sua identidade.</string>
Validação
var config = new ValidationConfig
{
Uuid = "seu-uuid",
ApiUrl = "https://api.biotrust.io",
Mode = ValidationMode.LivenessOnly
};
var resultado = await new BioTrustValidator().ValidateAsync(config);
if (resultado.Cancelled)
{
// validação cancelada pelo usuário
}
else if (resultado.IsSuccess)
{
// resultado.VivacityConfidence, resultado.FaceImage
}
else
{
// resultado.Message
}
ValidateAsync sempre devolve um ValidationResult. Reprovação, erro e cancelamento não lançam
exceção. Configuração inválida é devolvida como falha, com o motivo em Message, antes de a
câmera abrir.
Modos
ValidationMode |
O que faz | Exige |
|---|---|---|
LivenessOnly |
Prova de vida | — |
LivenessWithDocument |
Prova de vida com verificação na base de documentos | DocumentCpf, DocumentBirthDate |
FaceMatch |
Identificação entre as pessoas cadastradas (1:N) | — |
FaceMatchExact |
Verificação contra uma pessoa específica (1:1) | DocumentNumber |
FaceCapture |
Captura do rosto com prova de vida, sem consulta a bases (iOS) | — |
A lista completa de parâmetros de ValidationConfig e de campos de ValidationResult está na
documentação.
FaceMatch
var manager = new BioTrustFaceMatchManager(config);
var resultado = await manager.AddPersonAsync("Maria Silva", "12345678901", DocumentType.Cpf);
if (resultado.IsSuccess)
{
// resultado.UniqueId
}
| Método | O que faz |
|---|---|
AddPersonAsync(name, document, documentType) |
Cadastra com captura facial e prova de vida |
AddPersonFromImageAsync(image, name, document, documentType) |
Cadastra a partir de uma imagem JPEG ou PNG, submetida à verificação de vivacidade |
EditPersonAsync(personId, name, document, documentType) |
Atualiza nome e foto |
A consulta e a exclusão ficam em BioTrustFaceMatchDirectory (ListPersonsAsync,
DeletePersonAsync) e exigem ApiKey e ApiSecret na configuração. Em aplicativos
distribuídos em loja, faça essas operações pelo seu backend.
Controle de acesso
Modo terminal, para catracas, portões e portas. A sessão fica de pé sobre uma view do layout e entrega uma decisão por pessoa.
var sessao = new BioTrustAccessControl(new AccessControlConfig
{
Uuid = "seu-uuid",
ApiUrl = "https://api.biotrust.io",
TerminalLabel = "Catraca portaria"
});
sessao.Authorized += quem => AbrirCatraca(quem.Name);
sessao.Revoked += () => FecharCatraca();
await sessao.StartAsync(cameraView); // BioTrustCameraView no XAML
sessao.PersonPassed(); // quando o equipamento indicar a passagem
Depois de autorizar, a sessão não autoriza de novo até PersonPassed() ou até a janela de
liberação vencer. Enquanto a liberação está de pé, um rosto sem correspondência dispara
Revoked; esse comportamento é controlado por RevokeOnMismatch.
O acionamento do equipamento é da aplicação. Disponível em Android e iOS.
Erros
Os métodos não lançam exceção. Configuração inválida, falha de rede e erro do SDK voltam com
IsSuccess = false e a descrição em Message. Cancelamento volta com Cancelled = true.
Uma operação com tela por vez: uma segunda chamada com a tela do SDK aberta devolve falha.
Licença
Software proprietário, licenciado para uso com os serviços BioTrust mediante contrato
comercial. O texto completo está em
docs.biotrust.io/licenca.txt e no arquivo LICENSE
deste pacote.
Suporte: cloud@biotrust.io
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-android35.0 is compatible. net9.0-browser was computed. net9.0-ios was computed. net9.0-ios18.0 is compatible. net9.0-maccatalyst was computed. net9.0-maccatalyst18.0 is compatible. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-android36.0 is compatible. net10.0-browser was computed. net10.0-ios was computed. net10.0-ios26.0 is compatible. net10.0-maccatalyst was computed. net10.0-maccatalyst26.0 is compatible. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net10.0-android36.0
- Square.OkHttp3 (>= 4.12.0.10)
- Xamarin.AndroidX.Camera.Camera2 (>= 1.2.3.3)
- Xamarin.AndroidX.Camera.Core (>= 1.2.3.3)
- Xamarin.AndroidX.Camera.Lifecycle (>= 1.2.3.3)
- Xamarin.AndroidX.Camera.View (>= 1.2.3.3)
- Xamarin.Google.MLKit.FaceDetection (>= 116.1.5.11)
- Xamarin.GooglePlayServices.Location (>= 121.0.1.5)
-
net10.0-ios26.0
- No dependencies.
-
net10.0-maccatalyst26.0
- No dependencies.
-
net9.0
- No dependencies.
-
net9.0-android35.0
- Square.OkHttp3 (>= 4.12.0.10)
- Xamarin.AndroidX.Camera.Camera2 (>= 1.2.3.3)
- Xamarin.AndroidX.Camera.Core (>= 1.2.3.3)
- Xamarin.AndroidX.Camera.Lifecycle (>= 1.2.3.3)
- Xamarin.AndroidX.Camera.View (>= 1.2.3.3)
- Xamarin.Google.MLKit.FaceDetection (>= 116.1.5.11)
- Xamarin.GooglePlayServices.Location (>= 121.0.1.5)
-
net9.0-ios18.0
- No dependencies.
-
net9.0-maccatalyst18.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.