Red de conocimiento informático - Material del sitio web - Cómo utilizar la API de alicloud para la identificación

Cómo utilizar la API de alicloud para la identificación

El siguiente contenido se copia como referencia, pero puede responder a su pregunta:

Trabajo de preparación: agregue alicloud-android-apigateway-sdk-1.0.1.jar,commons-codec-1.10-1.putExtra en libs ("aspectX", 5);

intent.putExtra ("aspectY", 3

intent.putExtra ("salidaX", salidaX

<); p >intent.putExtra("outputY", outputY);

intent.putExtra("scale",true);

intent.putExtra(MediaStore.EXTRA_OUTPUT, desUri);

p>

intent.putExtra("return-data",false);

intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());

intent.putExtra("noFaceDetection",true);

startActivityForResult(intent,requestCode);

}

Usa base64 para subir fotos

private void trygetCardNum() {

if (NetworkUtils.isConnectWithTip(this, "No estás conectado a la red, por lo que no se pueden obtener los datos")) {

LoadingUtil.IMAGE_3);

Archivo archivo = nuevo Archivo(defaultPhotoAddress);

byte[] contenido = nuevo byte[(int) archivo.length() ];

FileInputStream finputstream = new FileInputStream(archivo);

finputstream.read(contenido);

finputstream.close();

imgBase64 = new String(Base64.encodeBase64 (contenido));

// imgBase64 = Base64Img.Bitmap2StrByBase64(mapa de bits);

if(imgBase64! =null||!imgBase64.equals("")){

PreferenceUtils.modifyStringValueInPreferences(CardActivity.this, Preferences.IMAGE_3, null);

}

} catch (IOException e) {

e.printStackTrace();

return;

}

// Obtener servicio

RpcService rpcService = ApiGatewayClient.getRpcService();

final ApiRequest apiRequest = new ApiRequest();

//Establecer la dirección, ruta y método de la solicitud

apiRequest.setAddress("");

apiRequest.setPath("/ rest/160601/ocr/ocr_idcard.json");

apiRequest.setMethod(HttpMethod.POST );

//Establece el cuerpo del formulario binario de acuerdo con el documento, admite la configuración de parámetros de consulta, parámetros de título y FormBody

apiRequest.setStringBody("{\"inputs\": [{\ "image\":{\"dataType\":50,\"dataValue\":\""+imgBase64+"\"\"\"\"\"\"\"\"\"\"\ "\" \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\ "\" \" tipo de datos\":50,\"valor de datos\":\"{\\\\"lado\\\":\\\\"cara\"}}]");

/ /Establezca soporte para certificados autofirmados y otras formas de certificados. Si el certificado del lado del servidor es legítimo, no lo configure solo para desarrollo y pruebas, o para escenarios no rutinarios.

apiRequest.setTrustServerCertificate(true);

//Establecer tiempo de espera

apiRequest.setTimeout(10000);

rpcService.call( apiRequest, nueva ApiResponseCallback() {

@Override

public void onSuccess(ApiResponse apiResponse) {

//Manejar apiResponse

LoadingUtil.dismiss() ;

String s = apiResponse.getStringBody();

Resultado de NumBean = JSONObject.parseObject(s, NumBean.class);

String dataValue = resultado. getOutputs().get(0).getOutputValue().getDataValue();

DataValueBean dataValueBean = JSONObject.parseObject(dataValue, DataValueBean.class

Número = dataValueBean.getNum); ();

nombre = dataValueBean.getName();

dirección = dataValueBean.getAddress()

nacimiento = dataValueBean.

Nacionalidad = dataValueBean.getNationality();

sexo = dataValueBean.getSex()

if(dataValueBean.getError_msg()==null){

runOnUiThread(new Runnable() {

ejecución pública void() {

if(Número ==null||Número.equals("")||nombre == nulo|| nombre.equals("")||dirección == nulo||dirección.equals("")||nacimiento == nulo||nacimiento.equals( "")|sexo == nulo||sexo.equals("" )){

Toast.makeText(CardActivity.this, "Error de escaneo, vuelva a intentarlo", Toast.LENGTH_LONG)makeText(CardActivity.this, "Error de escaneo, vuelva a intentarlo", Toast.LENGTH_LONG).show ();

}

}});

}

}

@ Anular

public void onException(ApiInvokeException e) {

//Manejo de excepciones

LoadingUtil.dismiss();

"El análisis falló , inténtalo de nuevo.

dismiss();

runOnUiThread(new Runnable() {

public void run() {

Toast.makeText(CardActivity.this, "El análisis falló, por favor vuelva a intentarlo", Toast.LENGTH_LONG).show();

}

});

}

});

}

}

Adjunto:

la clase pública NumBean implementa Serializable{

lista privada

Lista pública< OutputsBean> getOutputs() {

devolver salidas;

}

public void setOutputs(Lista< OutputsBean> salidas) {

this.outputs = salidas;

}

clase estática pública OutputsBean {

cadena privadaoutputLabel;

outputMultiBean privadooutputMulti;

outputValueBeanoutputValue;

cadena pública getOutputLabel() {

returnoutputLabel;

}

public void setOutputLabel(String OutputLabel) {

this.outputValue = OutputValue;

}

}

clase estática pública OutputMultiBean {

}

clase estática pública OutputValueBean {

tipo de datos int privado;

valor de datos de cadena privada; p>

public int getDataType() {

return dataType;

}

public void setDataType(int dataType) {

this.dataType = dataType;

}

}

p >public String getDataValue() {

return dataValue;

p>

}

public void setDataValue(String dataValue) {

this.dataValue = dataValue;

}

}

}

}

la clase pública DataValueBean implementa la dirección de cadena privada serializable{

;

}

cadena pública getNacimiento() {

<

p>devolver nacimiento;

}

public void setBirth(String nacimiento) {

this.birth = nacimiento;

}

cadena pública getConfig_str() {

return config_str;

}

public void setConfig_str(String config_str) {

this.config_str = config_str;

}

cadena pública getError_msg() {

return error_msg;

}

public void setError_msg( String error_msg) {

this.error_msg = error_msg;

}

public String getName() {

devolver nombre;

}

public void setName(nombre de cadena) {

this.name = nombre;

}

public String getNationality() {

devolver nacionalidad;

}

public void setNationality(String nacionalidad) {

this.nationality = nacionalidad;

}

public String getNum() {

return num;

}

public void setNum(String num) {

this.num = num;

}

public String getRequest_id() {

devolver solicitud _id;

}

public void setRequest_id(String request_id) {

this.request_id = request_id;

}

public String getSex() {

devolver sexo;

}

public void setSex(String sexo) {

this.sex = sexo;

}

public boolean isSuccess() {

devuelve éxito;

}

public void setSuccess(éxito booleano) {

this.success = éxito;

}

}

Hay una nueva función en AndroidManifest.xml en Agregar