Mantra生物识别设备安卓集成后扫描完成无法获取数据故障问询
Mantra AEPS设备安卓集成OnActivityResult无返回数据排查方案
- 首先校验请求参数与返回状态
先确认回调中requestCode与你启动Mantra采集页时传入的请求码完全一致,且resultCode == Activity.RESULT_OK,若设备扫描后用户手动取消、或SDK内部报错返回RESULT_CANCELED,系统不会携带任何业务数据。 - 核对返回数据的Extra键与数据类型
不同版本的Mantra AEPS SDK返回数据的键名、类型存在差异,不要直接固定使用"PIDDATA"拿字符串,优先按以下顺序尝试取值:- 部分旧版SDK返回字节数组类型,需先取字节流再转字符串:
byte[] pidBytes = data.getByteArrayExtra("PID_DATA"); if (pidBytes != null) { String result = new String(pidBytes, StandardCharsets.UTF_8); } - 其他常见的键名还包括
"MANTRA_PID"、"PID_RESPONSE",可直接遍历所有返回的Extra键确认实际返回的字段:Bundle extras = data.getExtras(); if (extras != null) { for (String key : extras.keySet()) { Log.d("MANTRA_RETURN", "key: " + key + ", value: " + extras.get(key)); } }
- 部分旧版SDK返回字节数组类型,需先取字节流再转字符串:
- 检查权限与调用配置
需在AndroidManifest.xml中声明SDK要求的专属权限,未授予权限时设备会正常执行扫描但不会回传数据:
同时确认启动采集页的Intent已传入正确的<uses-permission android:name="com.mantra.biometric.permission.ACCESS_PID" />"PID_OPTIONS"参数,且包名指定为Mantra官方应用的包名,避免调用到其他同action的第三方应用。 - 加密数据处理
若你在传入的PID选项中开启了加密配置,返回的字节流为加密状态,不可直接转明文,需调用Mantra SDK内置的解密工具类处理:String result = MantraCipher.decrypt(pidBytes, yourEncryptKey);
内容的提问来源于stack exchange,提问作者AndroidLover
相关产品推荐
相关产品推荐

