diff --git a/app/src/main/java/com/ouxuan/oxface/DebugActivity.java b/app/src/main/java/com/ouxuan/oxface/DebugActivity.java index 6ab71e0..74229c1 100644 --- a/app/src/main/java/com/ouxuan/oxface/DebugActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/DebugActivity.java @@ -27,6 +27,7 @@ import com.ouxuan.oxface.utils.AutoStartManager; import com.ouxuan.oxface.utils.BootSimulationHelper; import com.ouxuan.oxface.utils.LogManager; import com.ouxuan.oxface.utils.UtilCodeHelper; +import com.ouxuan.oxface.utils.VenueSceneUtils; import java.io.File; import java.util.Date; @@ -188,6 +189,36 @@ public class DebugActivity extends Activity { finish(); } }); + + // 查验设备配置按钮 + Button btnCheckDeviceConfig = findViewById(R.id.btnCheckDeviceConfig); + btnCheckDeviceConfig.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + checkDeviceConfig(); + } + }); + } + + /** + * 查验设备配置 + */ + private void checkDeviceConfig() { + logMessage("开始查验设备配置..."); + try { + String padSettingJson = com.ouxuan.oxface.utils.VenueSceneUtils.getPadSettingJson(this); + if (!padSettingJson.isEmpty()) { + logMessage("设备配置查验成功:\n" + padSettingJson); + showToast("设备配置查验成功"); + } else { + logMessage("设备配置查验失败: 未获取到配置数据"); + showToast("设备配置查验失败"); + } + } catch (Exception e) { + Log.e(TAG, "查验设备配置时发生异常", e); + logMessage("查验设备配置时发生异常: " + e.getMessage()); + showToast("查验设备配置时发生异常"); + } } /** diff --git a/app/src/main/java/com/ouxuan/oxface/utils/PadSettingUsageExample.java b/app/src/main/java/com/ouxuan/oxface/utils/PadSettingUsageExample.java new file mode 100644 index 0000000..d82dad0 --- /dev/null +++ b/app/src/main/java/com/ouxuan/oxface/utils/PadSettingUsageExample.java @@ -0,0 +1,50 @@ +package com.ouxuan.oxface.utils; + +import android.content.Context; +import android.util.Log; + +/** + * PadSetting使用示例 + * 展示如何使用VenueSceneUtils.getPadSettingJson()函数 + */ +public class PadSettingUsageExample { + private static final String TAG = "PadSettingUsageExample"; + + /** + * 示例方法:获取并使用pad_setting数据 + * @param context 上下文 + */ + public static void exampleUsage(Context context) { + // 调用我们实现的函数获取pad_setting JSON数据 + String padSettingJson = VenueSceneUtils.getPadSettingJson(context); + + if (!padSettingJson.isEmpty()) { + Log.d(TAG, "成功获取pad_setting数据: " + padSettingJson); + + // 可以进一步解析和使用这些数据 + // 例如,检查某些配置项: + /* + try { + com.google.gson.JsonObject padSettingObject = com.google.gson.JsonParser.parseString(padSettingJson).getAsJsonObject(); + + // 检查是否启用了活体检测 + if (padSettingObject.has("living_control")) { + boolean livingControl = padSettingObject.get("living_control").getAsBoolean(); + Log.d(TAG, "活体检测功能: " + (livingControl ? "启用" : "禁用")); + } + + // 检查门禁GPIO设置 + if (padSettingObject.has("gate_ab_gpio")) { + boolean gateAbGpio = padSettingObject.get("gate_ab_gpio").getAsBoolean(); + Log.d(TAG, "门禁GPIO控制: " + (gateAbGpio ? "启用" : "禁用")); + } + + } catch (Exception e) { + Log.e(TAG, "解析pad_setting数据时发生错误: " + e.getMessage(), e); + } + */ + } else { + Log.w(TAG, "未能获取pad_setting数据"); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ouxuan/oxface/utils/VenueSceneUtils.java b/app/src/main/java/com/ouxuan/oxface/utils/VenueSceneUtils.java index 00cd537..456b3b6 100644 --- a/app/src/main/java/com/ouxuan/oxface/utils/VenueSceneUtils.java +++ b/app/src/main/java/com/ouxuan/oxface/utils/VenueSceneUtils.java @@ -173,4 +173,52 @@ public class VenueSceneUtils { '}'; } } + + /** + * 从本地存储的select_response中获取pad_setting并返回JSON数据 + * @param context 上下文 + * @return pad_setting的JSON字符串,如果获取失败返回空字符串 + */ + public static String getPadSettingJson(Context context) { + try { + DeviceSelectDataManager dataManager = DeviceSelectDataManager.getInstance(context); + String selectResponseJson = dataManager.getApiResponseDataJson(); + + if (selectResponseJson != null && !selectResponseJson.isEmpty()) { + // 解析JSON数据 + com.google.gson.JsonObject responseObject = com.google.gson.JsonParser.parseString(selectResponseJson).getAsJsonObject(); + + // 检查是否存在pad_config字段 + if (responseObject.has("pad_config") && responseObject.get("pad_config").isJsonObject()) { + com.google.gson.JsonObject padConfigObject = responseObject.getAsJsonObject("pad_config"); + + // 检查是否存在extension字段 + if (padConfigObject.has("extension") && padConfigObject.get("extension").isJsonObject()) { + com.google.gson.JsonObject extensionObject = padConfigObject.getAsJsonObject("extension"); + + // 检查是否存在pad_setting字段 + if (extensionObject.has("pad_setting") && extensionObject.get("pad_setting").isJsonObject()) { + com.google.gson.JsonObject padSettingObject = extensionObject.getAsJsonObject("pad_setting"); + String padSettingJson = padSettingObject.toString(); + + Log.d(TAG, "成功获取pad_setting JSON数据,长度: " + padSettingJson.length()); + return padSettingJson; + } else { + Log.w(TAG, "extension中不存在pad_setting字段或pad_setting不是对象"); + } + } else { + Log.w(TAG, "pad_config中不存在extension字段或extension不是对象"); + } + } else { + Log.w(TAG, "select_response中不存在pad_config字段或pad_config不是对象"); + } + } else { + Log.w(TAG, "无法获取select_response数据"); + } + } catch (Exception e) { + Log.e(TAG, "获取pad_setting JSON数据时发生异常: " + e.getMessage(), e); + } + + return ""; + } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_debug.xml b/app/src/main/res/layout/activity_debug.xml index e016668..857bac2 100644 --- a/app/src/main/res/layout/activity_debug.xml +++ b/app/src/main/res/layout/activity_debug.xml @@ -203,14 +203,13 @@ android:textSize="12sp" />