3 changed files with 224 additions and 6 deletions
-
30app/src/main/java/com/ouxuan/oxface/data/DeviceSelectDataManager.java
-
172app/src/main/java/com/ouxuan/oxface/utils/InitPadSettingConfig.java
-
20oxplugin_padface/src/main/java/io/dcloud/oxplugin/FaceWXModule.java
@ -0,0 +1,172 @@ |
|||||
|
package com.ouxuan.oxface.utils; |
||||
|
|
||||
|
import android.util.Log; |
||||
|
|
||||
|
import com.baidu.idl.face.main.finance.model.SingleBaseConfig; |
||||
|
import com.baidu.idl.face.main.finance.utils.FinanceConfigUtils; |
||||
|
import com.ouxuan.oxface.network.api.PadApiService; |
||||
|
|
||||
|
/** |
||||
|
* Pad设置配置初始化工具类 |
||||
|
* 用于解析pad_setting配置并应用到百度SDK配置中 |
||||
|
*/ |
||||
|
public class InitPadSettingConfig { |
||||
|
private static final String TAG = "InitPadSettingConfig"; |
||||
|
|
||||
|
// 单例实例 |
||||
|
private static volatile InitPadSettingConfig instance; |
||||
|
|
||||
|
// Pad设置配置数据 |
||||
|
private PadApiService.PadSetting padSetting; |
||||
|
|
||||
|
private InitPadSettingConfig() { |
||||
|
// 私有构造函数 |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取InitPadSettingConfig单例实例 |
||||
|
* @return InitPadSettingConfig实例 |
||||
|
*/ |
||||
|
public static InitPadSettingConfig getInstance() { |
||||
|
if (instance == null) { |
||||
|
synchronized (InitPadSettingConfig.class) { |
||||
|
if (instance == null) { |
||||
|
instance = new InitPadSettingConfig(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return instance; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 初始化Pad设置配置 |
||||
|
* @param padSetting Pad设置配置数据 |
||||
|
*/ |
||||
|
public void initPadSetting(PadApiService.PadSetting padSetting) { |
||||
|
this.padSetting = padSetting; |
||||
|
applyPadSettingConfig(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 应用Pad设置配置到百度SDK |
||||
|
*/ |
||||
|
private void applyPadSettingConfig() { |
||||
|
if (padSetting == null) { |
||||
|
Log.w(TAG, "Pad设置配置为空,无法应用配置"); |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
try { |
||||
|
// 应用活体检测配置 |
||||
|
applyLivingControlConfig(); |
||||
|
|
||||
|
// 应用摄像头角度配置 |
||||
|
applyCameraAngleConfig(); |
||||
|
|
||||
|
// 可以继续添加其他配置项的处理 |
||||
|
|
||||
|
Log.d(TAG, "Pad设置配置应用成功"); |
||||
|
} catch (Exception e) { |
||||
|
Log.e(TAG, "应用Pad设置配置失败: " + e.getMessage(), e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 应用活体检测配置 |
||||
|
*/ |
||||
|
private void applyLivingControlConfig() { |
||||
|
try { |
||||
|
boolean livingControl = padSetting.isLivingControl(); |
||||
|
Log.d(TAG, "应用活体检测配置: livingControl=" + livingControl); |
||||
|
|
||||
|
// 设置活体检测开关 |
||||
|
SingleBaseConfig.getBaseConfig().setLivingControl(livingControl); |
||||
|
|
||||
|
// 根据活体检测开关设置类型 |
||||
|
if (livingControl) { |
||||
|
// 开启活体检测,设置为RGB活体检测(类型1) |
||||
|
SingleBaseConfig.getBaseConfig().setType(1); |
||||
|
} else { |
||||
|
// 关闭活体检测 |
||||
|
SingleBaseConfig.getBaseConfig().setType(0); |
||||
|
} |
||||
|
|
||||
|
// 保存配置到文件 |
||||
|
FinanceConfigUtils.modityJson(); |
||||
|
|
||||
|
Log.d(TAG, "活体检测配置应用成功: type=" + SingleBaseConfig.getBaseConfig().getType() + |
||||
|
", livingControl=" + SingleBaseConfig.getBaseConfig().isLivingControl()); |
||||
|
} catch (Exception e) { |
||||
|
Log.e(TAG, "应用活体检测配置失败: " + e.getMessage(), e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 应用摄像头角度配置 |
||||
|
*/ |
||||
|
private void applyCameraAngleConfig() { |
||||
|
try { |
||||
|
int deviceType = padSetting.getDeviceType(); |
||||
|
Log.d(TAG, "应用摄像头角度配置: deviceType=" + deviceType); |
||||
|
|
||||
|
// 根据设备类型设置摄像头角度 |
||||
|
if (deviceType != 5) { |
||||
|
Log.d(TAG, "非第6批设备,设置摄像头角度为270度"); |
||||
|
SingleBaseConfig.getBaseConfig().setVideoDirection(270); |
||||
|
SingleBaseConfig.getBaseConfig().setRgbVideoDirection(270); |
||||
|
SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(0); |
||||
|
} else { |
||||
|
Log.d(TAG, "第6批设备,设置摄像头角度为90度"); |
||||
|
SingleBaseConfig.getBaseConfig().setVideoDirection(90); |
||||
|
SingleBaseConfig.getBaseConfig().setRgbVideoDirection(90); |
||||
|
SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(1); |
||||
|
} |
||||
|
|
||||
|
// 保存配置到文件 |
||||
|
FinanceConfigUtils.modityJson(); |
||||
|
|
||||
|
Log.d(TAG, "摄像头角度配置应用成功: videoDirection=" + SingleBaseConfig.getBaseConfig().getVideoDirection() + |
||||
|
", rgbVideoDirection=" + SingleBaseConfig.getBaseConfig().getRgbVideoDirection() + |
||||
|
", mirrorDetectRGB=" + SingleBaseConfig.getBaseConfig().getMirrorDetectRGB()); |
||||
|
} catch (Exception e) { |
||||
|
Log.e(TAG, "应用摄像头角度配置失败: " + e.getMessage(), e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取Pad设置配置 |
||||
|
* @return Pad设置配置数据 |
||||
|
*/ |
||||
|
public PadApiService.PadSetting getPadSetting() { |
||||
|
return padSetting; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 检查是否已初始化 |
||||
|
* @return true如果已初始化 |
||||
|
*/ |
||||
|
public boolean isInitialized() { |
||||
|
return padSetting != null; |
||||
|
} |
||||
|
|
||||
|
// ==================== 可添加的其他配置项方法 ==================== |
||||
|
|
||||
|
/* |
||||
|
* 以下是可以根据需要添加的其他配置项处理方法: |
||||
|
* |
||||
|
* 1. 门禁控制相关配置 |
||||
|
* 2. 摄像头配置相关 |
||||
|
* 3. 检测参数配置 |
||||
|
* 4. 其他设备特定配置 |
||||
|
* |
||||
|
* 示例: |
||||
|
* |
||||
|
* private void applyGateControlConfig() { |
||||
|
* // 处理门禁控制相关配置 |
||||
|
* } |
||||
|
* |
||||
|
* private void applyCameraConfig() { |
||||
|
* // 处理摄像头配置相关配置 |
||||
|
* } |
||||
|
*/ |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue