You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安卓端Morpho指纹扫描仪采集指纹报错自动断开问题

Morpho Device安卓端指纹采集报错修复

报错对应触发逻辑

三个错误码的实际触发原因:

  • error code 100:传入的PID_OPTIONSXML字符串不符合UIDAI RD Service规范,直接触发格式校验失败
  • error code 140:参数调整后仍存在违规项,或设备连接异常、RD Service未授权/未激活、设备未完成注册
  • error code 999:参数非法或服务状态异常触发的连锁错误,会直接导致设备主动断开连接

原有代码的XML违规点

你定义的responseXml存在5个明确的规范违反问题:

  1. fType属性语法完全错误:fType="0"|fType="1"|fType="2"是非法写法,fType为单值属性,单指纹采集场景固定传fType="2"即可,不允许用竖线拼接多个同名属性
  2. 存在非法冗余节点:<Demo></Demo>不属于PidOptions规范允许的子节点,规范中PidOptions根节点下仅允许Opts、CustOpts两个直接子节点
  3. 空值属性违规:iCount、iType、pCount、pType、pTimeout、otp、wadh、posh这类不需要传参的属性,不能留空值保留在标签中,必须直接删除,空字符串会被判定为参数非法
  4. 属性格式错误:env = "P"中等号两侧加了多余空格,XML属性语法要求等号前后不能有空格
  5. 空参数节点违规:<Param name="" value="" />属于无意义空节点,没有自定义参数传递时必须删除

修复后代码

1. 修正后的PID_OPTIONS XML定义

String responseXml =
        "<PidOptions ver=\"1.0\">" +
                "<Opts env=\"P\" fCount=\"1\" fType=\"2\" format=\"0\" pidVer=\"2.0\" timeout=\"10000\"/>" +
                "<CustOpts></CustOpts>" +
                "</PidOptions>";
private static final int AUTHENTICATION_REQUEST = 0;

2. 补充回调异常处理

原有onActivityResult仅处理成功回调,无法拿到错误场景的返回信息,补充异常分支逻辑:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == AUTHENTICATION_REQUEST) {
        Bundle b = data != null ? data.getExtras() : null;
        if (resultCode == RESULT_OK && b != null) {
            String pidData = b.getString("PID_DATA");
            Toast.makeText(this, "pidData"+pidData, Toast.LENGTH_SHORT).show();
            String dnc = b.getString("DNC", "");
            String dnr = b.getString("DNR", "");
            txt.setText(pidData);
        } else {
            // 处理错误场景,从bundle中取错误码、错误信息排查问题
            if (b != null) {
                String errCode = b.getString("ERR_CODE", "");
                String errMsg = b.getString("ERR_MSG", "");
                Toast.makeText(this, "采集失败:"+errCode+" "+errMsg, Toast.LENGTH_SHORT).show();
            }
        }
    }
}

额外注意事项

  • 测试前确认Morpho RD Service已安装激活,已授予存储、USB访问权限,设备已完成注册
  • 不要保留XML注释内容在传入的参数字符串里,部分版本RD Service会把注释判定为非法内容
  • 采集前可以先通过RD Service提供的状态查询接口确认设备连接正常,再发起采集请求

内容的提问来源于stack exchange,提问作者shweta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:48:28