A partir de la versión 5.0, el SDK requiere una licencia para funcionar. Póngase en contacto con nosotros por correo electrónico para obtener una copia de la licencia. Para crear la licencia, se requiere su applicationId (bundle id).
Para pasar su archivo de licencia al SDK, llame el método OzLivenessSDK.init con una lista de LicenseSources. Utilice uno de los siguientes:
LicenseSource.LicenseAssetId debe contener una ruta de acceso a un archivo de licencia llamado forensics.license, que tiene que estar ubicado en la carpeta res/raw del proyecto.
LicenseSource.LicenseFilePath debe contener una ruta de acceso al lugar del almacenamiento del dispositivo donde se encuentra el archivo de licencia.
OzLivenessSDK.init(listOf( LicenseSource.LicenseAssetId(R.raw.your_license_name), LicenseSource.LicenseFilePath("absolute_path_to_your_license_file") ),object : StatusListener<LicensePayload> {overridefunonSuccess(result: LicensePayload) { /*comprobación de la información de la licencia*/ }overridefunonError(error: OzException) { /*procesamiento de la excepción */ } } )
OzLivenessSDK.INSTANCE.getConfig().setBaseURL(BASE_URL);OzLivenessSDK.INSTANCE.init(Arrays.asList(new LicenseSource.LicenseAssetId(R.raw.forensics),new LicenseSource.LicenseFilePath("absolute_path_to_your_license_file") ),newStatusListener<LicensePayload>() { @OverridepublicvoidonStatusChanged(@NullableString s) {} @Override public void onSuccess(LicensePayload licensePayload) { /*comprobación de la información de la licencia*/ }
@OverridepublicvoidonError(@NonNullOzException e) { /*procesamiento de la excepción */ } });
Ajustes
Se recomienda aplicar estos ajustes al iniciar la app.
// URL del servidor de Oz API con el que el SDK va a interactuarOzLivenessSDK.config.baseURL = BASE_URL // el token para acceder al servidor de Oz API (sólo si tiene un solo token para todos los usuarios)OzLivenessSDK.config.permanentAccessToken = ACCESS_TOKEN // ajustes para el número de intentos de detectar una acciónOzLivenessSDK.config.attemptSettings = attemptSettings // la posibilidad de mostrar información de depuración adicional (puede verla haciendo clic en el número de versión del SDK)
OzLivenessSDK.config.allowDebugVisualization = allowDebugVisualization // ajustes del registroOzLivenessSDK.config.logging = ozLogging
OzConfig config =OzLivenessSDK.INSTANCE.getConfig();// URL del servidor de Oz API con el que el SDK va a interactuarconfig.setBaseURL(BASE_URL); // el token para acceder al servidor de Oz API (sólo si tiene un solo token para todos los usuarios)config.setPermanentAccessToken(ACCESS_TOKEN); // ajustes para el número de intentos de detectar una acciónconfig.setAttemptSettings(attemptSettings); // la posibilidad de mostrar información de depuración adicional (puede verla haciendo clic en el número de versión del SDK)
config.setAllowDebugVisualization(allowDebugVisualization); // ajustes del registroconfig.setLogging(ozLogging);
Cómo personalizar la interfaz
Puede personalizar la interfaz de Oz Liveness con la ayuda de la clase OzCustomization y sus subclases:
Para autorizar Oz API y obtener el token de acceso, utilice el método OzLivenessSDK.login con el nombre de usuario y la contraseña proporcionados por su administrador de cuentas de Oz Forensics:
val loginListener =object: StatusListener<String> {overridefunonSuccess(token: String) { /*guardar token*/ }overridefunonError(error: OzException) {/* procesamiento de la excepción */}}OzLivenessSDK.login(USER_NAME, PASSWORD, loginListener)
sdkMediaResult: objeto con los resultados de captura de video para las interacciones con Oz API
sdkErrorString: descripción de los errores, si los hay
Carga de archivos multimedia para su análisis
Hay dos formas de enviar archivos multimedia para su análisis:
análisis en el servidor: el sistema envía archivos multimedia a un servidor remoto y luego espera su respuesta.
análisis en el dispositivo: los archivos multimedia se analizan en el dispositivo, sin enviarlos a ninguna parte
Análisis en el servidor
Los datos que se cargan y analizan se almacenan en el objeto sdkMediaResult, obtenido tras la captura y grabación de video. Cárguelo en el servidor e inicie los análisis necesarios mediante Oz API.
Un escenario simple de interacción con Oz API puede implementarse con el método uploadMediaAndAnalyze como se describe a continuación.
val statusListener =object: StatusListener<List<OzAnalysisResult>> {overridefunonStatusChanged(status: String?) { /*su código para mostrar el mensaje de estado*/ } override fun onSuccess(result:List <OzAnalysisResult>) { /*su código para manejar el resultado del análisis*/ }
overridefunonError(error: OzException) { /*su código para manejar el error de análisis*/ } }val analysisCancelable = OzLivenessSDK.uploadMediaAndAnalyze( mediaList,listOf(OzAnalysis.QUALITY, OzAnalysis.BIOMETRY), statusListener )
StatusListener<List<OzAnalysisResult>> statusListener =newStatusListener<List<OzAnalysisResult>>() { @Override public void onStatusChanged(@Nullable String s) { /*su código para mostrar el mensaje de estado*/ }
@Override public void onSuccess(List<OzAnalysisResult> result) { /* su código para manejar el resultado del análisis */ }
@OverridepublicvoidonError(@NonNullOzException e) { /* su código para manejar el error de análisis */ } };Cancelable analysisCancelable =OzLivenessSDK.INSTANCE.uploadMediaAndAnalyze( mediaList,Arrays.asList(OzAnalysis.QUALITY,OzAnalysis.BIOMETRY), statusListener );
Análisis en el dispositivo
Utilice los siguientes métodos para ejecutar el análisis en el dispositivo:
El SDK contiene la interfaz IOzForensicsAPI, que describe las llamadas de red a la API, que se pueden usar para crear una instancia de Retrofit.
Esta interfaz utiliza un convertidor gson y opera con clases del paquete com.ozforensics.liveness.sdk.api.model.
Aparte de esto, la interfaz especifica un método estático para crear una instancia de Retrofit por defecto (sin escritura en registro, interceptores y con tiempos de espera de 15 segundos). Esta instancia buscará el servidor en la dirección especificada:
El SDK incluye la clase OzForensicsService que utiliza una instancia de Retrofit de OzForensicsAPI.create(). Esta clase envuelve las llamadas de red de la interfaz de Retrofit y comprueba la presencia de un token. Cuando se realiza una solicitud de autentificación, el token se almacena automáticamente para objetivos internos. Además, se agregan los metadatos necesarios cuando se realizan las solicitudes de red (creación de una carpeta, carga de datos multimedia para su análisis). Las llamadas a métodos de esta clase son asíncronas (se utiliza la interfaz StatusListener<>). Puede obtener una instancia de esta clase de la siguiente manera:
val service =OzForensicsService(BASE_URL, ACCESS_TOKEN)
OzForensicsService service =OzForensicsService(BASE_URL, ACCESS_TOKEN);
Si el valor del parámetro TOKEN es null, se requiere autorización antes de realizar cualquier llamada a la API (excepto auth):
service.auth(EMAIL, PASSWORD, listener)
service.auth(EMAIL, PASSWORD, listener);
Después de una solicitud correcta, se ejecuta onSuccessCallback para que el token de acceso se pueda transferir con AuthResponse.