diff --git a/app/src/main/java/com/ouxuan/oxface/MainActivity.java b/app/src/main/java/com/ouxuan/oxface/MainActivity.java index 6846bb1..1955044 100644 --- a/app/src/main/java/com/ouxuan/oxface/MainActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/MainActivity.java @@ -123,6 +123,9 @@ public class MainActivity extends AppCompatActivity { // 设置长按登录按钮显示日志路径信息(调试功能) setupLogPathDebug(); + // 初始化人脸识别配置文件,确保filePath正确设置 + initAndCheckFaceConfig(this); + // 动态获取设备类型并切换相机配置 int deviceType = DeviceSelectDataManager.getInstance(this).getDeviceType(); Log.d(TAG, "初始化时获取设备类型: " + deviceType); diff --git a/app/src/main/java/com/ouxuan/oxface/device/Ox485.java b/app/src/main/java/com/ouxuan/oxface/device/Ox485.java index d19a817..d476915 100644 --- a/app/src/main/java/com/ouxuan/oxface/device/Ox485.java +++ b/app/src/main/java/com/ouxuan/oxface/device/Ox485.java @@ -20,16 +20,18 @@ import java.util.concurrent.TimeUnit; * 主要用于获取摄像头人数等485设备通信 * 采用即用即连模式:每次请求时打开连接,完成后立即关闭,确保通信可靠性 * - * @author AI Assistant + * @author ouXuan * @version 3.0 - 即用即连模式 - * @date 2024/09/22 + * @date 2025/09/22 */ public class Ox485 { private static final String TAG = "Ox485"; // 485通信配置 - private static final String DEFAULT_SERIAL_PORT_PATH = "/dev/ttyS6"; + private static final String DEFAULT_SERIAL_PORT_PATH = "/dev/ttyS6"; //第6批设备 + // private static final String DEFAULT_SERIAL_PORT_PATH = "/dev/ttys4"; //第7批设备 + private static final int DEFAULT_BAUD_RATE = 9600; private static final int DEFAULT_STOP_BITS = 1; private static final String HEX_COMMAND_GET_PEOPLE_NUM = "0F030001000294E5"; 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 eb9914f..89c423e 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 @@ -855,7 +855,7 @@ public class FaceSDKManager { try { if(deviceType == 6){ Log.e("FaceSDKManager", "switchCamera--第7批"); - SingleBaseConfig.getBaseConfig().setVideoDirection(90); + SingleBaseConfig.getBaseConfig().setVideoDirection(180); SingleBaseConfig.getBaseConfig().setRgbVideoDirection(90); SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(0); }else if(deviceType == 5){ 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 64b9f59..e4017ef 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 @@ -29,32 +29,63 @@ public class FinanceConfigUtils { // 配置文件路径 public static String filePath; - public static final String folder2 = Environment.getExternalStorageDirectory() + File.separator + "Settings"; - // 配置文件路径 - public static final String filePath_gate = folder2 + "/" + "gateFaceConfig.txt"; + // 动态获取外部存储路径,避免在类加载时初始化 + public static String getFolder2() { + if (isSDCardEnable()) { + return Environment.getExternalStorageDirectory() + File.separator + "Settings"; + } else { + Log.w(TAG, "外部存储不可用,使用内部存储"); + return null; + } + } + + // 动态获取门禁配置文件路径 + public static String getFilePathGate() { + String externalFolder = getFolder2(); + return externalFolder != null ? externalFolder + "/" + "gateFaceConfig.txt" : null; + } public static boolean isConfigExit(Context context) { folder = context.getFilesDir() + File.separator + "Settings"; - filePath = folder2 + "/" + "financeFaceConfig.txt"; -// filePath = filePath_gate; + + // 优先使用外部存储,如果不可用则使用内部存储 + String externalFolder = getFolder2(); + String configDir; + if (externalFolder != null) { + filePath = externalFolder + "/" + "financeFaceConfig.txt"; + configDir = externalFolder; + } else { + // 回退到内部存储 + filePath = folder + "/" + "financeFaceConfig.txt"; + configDir = folder; + Log.d(TAG, "使用内部存储路径: " + filePath); + } Log.d(TAG, "filePath_isConfigExit: "+filePath); - File file1 = new File(folder); - if (!file1.exists()) { - file1.mkdirs(); + + // 确保配置目录存在 + File configDirFile = new File(configDir); + if (!configDirFile.exists()) { + boolean mkdirResult = configDirFile.mkdirs(); + Log.d(TAG, "创建配置目录 " + configDir + ": " + mkdirResult); } + File file = new File(filePath); if (file.exists()) { return true; } else { try { - file.createNewFile(); - modityJson(); + boolean createResult = file.createNewFile(); + Log.d(TAG, "创建配置文件 " + filePath + ": " + createResult); + if (createResult) { + modityJson(); + } + return createResult; } catch (IOException e) { + Log.e(TAG, "创建配置文件失败: " + filePath, e); e.printStackTrace(); return false; } - return true; } } @@ -353,6 +384,12 @@ public class FinanceConfigUtils { * 修改配置文件内容并重新读取配置 */ public static boolean modityJson() { + // 确保文件路径已初始化 + if (filePath == null || filePath.contains("null")) { + Log.e(TAG, "文件路径未初始化或无效: " + filePath); + return false; + } + // 检查文件路径是否有效 if (filePath == null || filePath.contains("null")) { Log.e(TAG, "文件路径无效,无法写入配置文件: " + filePath);