diff --git a/app/src/main/java/com/ouxuan/oxface/MainActivity.java b/app/src/main/java/com/ouxuan/oxface/MainActivity.java index 60f80a9..6846bb1 100644 --- a/app/src/main/java/com/ouxuan/oxface/MainActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/MainActivity.java @@ -123,8 +123,10 @@ public class MainActivity extends AppCompatActivity { // 设置长按登录按钮显示日志路径信息(调试功能) setupLogPathDebug(); - //切换第六批设备(0-5) - switchCameraByDeviceType(5); + // 动态获取设备类型并切换相机配置 + int deviceType = DeviceSelectDataManager.getInstance(this).getDeviceType(); + Log.d(TAG, "初始化时获取设备类型: " + deviceType); + switchCameraByDeviceType(deviceType); } /** diff --git a/app/src/main/java/com/ouxuan/oxface/data/DeviceSelectDataManager.java b/app/src/main/java/com/ouxuan/oxface/data/DeviceSelectDataManager.java index a656009..c2023e9 100644 --- a/app/src/main/java/com/ouxuan/oxface/data/DeviceSelectDataManager.java +++ b/app/src/main/java/com/ouxuan/oxface/data/DeviceSelectDataManager.java @@ -569,6 +569,27 @@ public class DeviceSelectDataManager { } /** + * 获取设备类型 + * @return 设备类型值,如果获取失败返回默认值5(第六批设备) + */ + public int getDeviceType() { + try { + PadApiService.PadSetting padSetting = getPadSetting(); + if (padSetting != null) { + int deviceType = padSetting.getDeviceType(); + Log.d(TAG, "从API响应获取设备类型: " + deviceType); + return deviceType; + } else { + Log.w(TAG, "PadSetting为空,使用默认设备类型5"); + } + } catch (Exception e) { + Log.e(TAG, "获取设备类型失败: " + e.getMessage(), e); + } + // 默认返回5(第六批设备),保持向后兼容性 + return 5; + } + + /** * 获取店铺信息 * @return 包含店铺名称和Logo的数组,[name, logo] */ diff --git a/financelibrary/src/main/java/com/baidu/idl/face/main/finance/manager/FaceSDKManager.java b/financelibrary/src/main/java/com/baidu/idl/face/main/finance/manager/FaceSDKManager.java index d258416..eb9914f 100644 --- a/financelibrary/src/main/java/com/baidu/idl/face/main/finance/manager/FaceSDKManager.java +++ b/financelibrary/src/main/java/com/baidu/idl/face/main/finance/manager/FaceSDKManager.java @@ -852,23 +852,32 @@ public class FaceSDKManager { */ public void switchCameraByDeviceType(int deviceType) { Log.d("dev", "switchCameraByDeviceType999: "+deviceType); - if(deviceType == 6){ - Log.e("FaceSDKManager", "switchCamera--第7批"); - SingleBaseConfig.getBaseConfig().setVideoDirection(90); - SingleBaseConfig.getBaseConfig().setRgbVideoDirection(90); - SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(0); - }else if(deviceType == 5){ - Log.e("FaceSDKManager", "switchCamera--第6批"); - SingleBaseConfig.getBaseConfig().setVideoDirection(90); - SingleBaseConfig.getBaseConfig().setRgbVideoDirection(90); - SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(1); - }else{ - Log.e("FaceSDKManager", "switchCamera--采用默认配置"); - SingleBaseConfig.getBaseConfig().setVideoDirection(270); - SingleBaseConfig.getBaseConfig().setRgbVideoDirection(270); - SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(0); + try { + if(deviceType == 6){ + Log.e("FaceSDKManager", "switchCamera--第7批"); + SingleBaseConfig.getBaseConfig().setVideoDirection(90); + SingleBaseConfig.getBaseConfig().setRgbVideoDirection(90); + SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(0); + }else if(deviceType == 5){ + Log.e("FaceSDKManager", "switchCamera--第6批"); + SingleBaseConfig.getBaseConfig().setVideoDirection(90); + SingleBaseConfig.getBaseConfig().setRgbVideoDirection(90); + SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(1); + }else{ + Log.e("FaceSDKManager", "switchCamera--采用默认配置"); + SingleBaseConfig.getBaseConfig().setVideoDirection(270); + SingleBaseConfig.getBaseConfig().setRgbVideoDirection(270); + SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(0); + } + + // 尝试保存配置到文件,如果失败则只记录日志 + boolean saveResult = com.baidu.idl.face.main.finance.utils.FinanceConfigUtils.modityJson(); + if (!saveResult) { + Log.w("FaceSDKManager", "配置文件保存失败,但相机配置已更新"); + } + } catch (Exception e) { + Log.e("FaceSDKManager", "切换相机配置时发生异常: " + e.getMessage(), e); } - com.baidu.idl.face.main.finance.utils.FinanceConfigUtils.modityJson(); } /** diff --git a/financelibrary/src/main/java/com/baidu/idl/face/main/finance/utils/FinanceConfigUtils.java b/financelibrary/src/main/java/com/baidu/idl/face/main/finance/utils/FinanceConfigUtils.java index 675f6b2..64b9f59 100644 --- a/financelibrary/src/main/java/com/baidu/idl/face/main/finance/utils/FinanceConfigUtils.java +++ b/financelibrary/src/main/java/com/baidu/idl/face/main/finance/utils/FinanceConfigUtils.java @@ -353,6 +353,11 @@ public class FinanceConfigUtils { * 修改配置文件内容并重新读取配置 */ public static boolean modityJson() { + // 检查文件路径是否有效 + if (filePath == null || filePath.contains("null")) { + Log.e(TAG, "文件路径无效,无法写入配置文件: " + filePath); + return false; + } JSONObject jsonObject = new JSONObject();