3 changed files with 722 additions and 2 deletions
-
113app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java
-
435app/src/main/java/com/ouxuan/oxface/network/LeaveVerificationManager.java
-
176app/src/main/java/com/ouxuan/oxface/utils/VenueSceneUtils.java
@ -0,0 +1,435 @@ |
|||
package com.ouxuan.oxface.network; |
|||
|
|||
import android.content.Context; |
|||
import android.util.Log; |
|||
|
|||
import com.ouxuan.oxface.data.DeviceSelectDataManager; |
|||
import com.ouxuan.oxface.network.api.PadApiService; |
|||
import com.ouxuan.oxface.network.callback.NetworkCallback; |
|||
import com.ouxuan.oxface.network.utils.NetworkUtils; |
|||
import com.ouxuan.oxface.utils.LogManager; |
|||
import com.ouxuan.oxface.utils.VenueSceneUtils; |
|||
|
|||
/** |
|||
* 离场校验管理器 |
|||
* 负责处理离场校验的网络请求和结果处理 |
|||
*/ |
|||
public class LeaveVerificationManager { |
|||
|
|||
private static final String TAG = "LeaveVerificationManager"; |
|||
|
|||
private Context context; |
|||
private LeaveVerificationListener listener; |
|||
|
|||
/** |
|||
* 离场校验监听器接口 |
|||
*/ |
|||
public interface LeaveVerificationListener { |
|||
/** |
|||
* 离场校验开始 |
|||
*/ |
|||
void onLeaveVerificationStart(); |
|||
|
|||
/** |
|||
* 离场校验成功 |
|||
* @param result 校验结果 |
|||
*/ |
|||
void onLeaveVerificationSuccess(PadApiService.CheckLeaveResult result); |
|||
|
|||
/** |
|||
* 离场校验失败 |
|||
* @param errorCode 错误代码 |
|||
* @param errorMessage 错误消息 |
|||
*/ |
|||
void onLeaveVerificationError(int errorCode, String errorMessage); |
|||
|
|||
/** |
|||
* 离场校验完成(无论成功或失败) |
|||
*/ |
|||
void onLeaveVerificationComplete(); |
|||
|
|||
/** |
|||
* 显示Toast消息 |
|||
* @param message 消息内容 |
|||
*/ |
|||
void showToast(String message); |
|||
} |
|||
|
|||
public LeaveVerificationManager(Context context, LeaveVerificationListener listener) { |
|||
this.context = context; |
|||
this.listener = listener; |
|||
} |
|||
|
|||
/** |
|||
* 执行人脸离场校验 |
|||
* @param faceBase64 人脸base64数据 |
|||
*/ |
|||
public void performFaceLeaveVerification(String faceBase64) { |
|||
LogManager.logInfo(TAG, "开始执行人脸离场校验"); |
|||
Log.d(TAG, "performFaceLeaveVerification - faceBase64长度: " + (faceBase64 != null ? faceBase64.length() : 0)); |
|||
|
|||
try { |
|||
// 获取设备信息 |
|||
DeviceSelectDataManager dataManager = DeviceSelectDataManager.getInstance(context); |
|||
String token = dataManager.getSessionToken(); |
|||
int hardwareId = dataManager.getSelectedHardwareId(); |
|||
|
|||
if (token.isEmpty()) { |
|||
LogManager.logError(TAG, "离场校验失败:token为空"); |
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "设备未授权,请重新登录"); |
|||
} |
|||
return; |
|||
} |
|||
|
|||
if (hardwareId <= 0) { |
|||
LogManager.logError(TAG, "离场校验失败:hardwareId无效"); |
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "设备ID无效,请重新选择设备"); |
|||
} |
|||
return; |
|||
} |
|||
|
|||
LogManager.logInfo(TAG, "离场校验参数 - hardwareId: " + hardwareId + ", token长度: " + token.length()); |
|||
|
|||
// 通知开始校验 |
|||
if (listener != null) { |
|||
listener.onLeaveVerificationStart(); |
|||
} |
|||
|
|||
// 调用离场校验接口(type=2表示人脸验证) |
|||
NetworkUtils.checkLeave(token, 2, hardwareId, null, null, |
|||
new NetworkCallback<PadApiService.CheckLeaveResult>() { |
|||
@Override |
|||
public void onStart() { |
|||
LogManager.logInfo(TAG, "离场校验网络请求开始"); |
|||
Log.d(TAG, "离场校验网络请求开始"); |
|||
} |
|||
|
|||
@Override |
|||
public void onSuccess(PadApiService.CheckLeaveResult result) { |
|||
LogManager.logInfo(TAG, "离场校验成功"); |
|||
Log.d(TAG, "离场校验成功 - message: " + (result != null ? result.getMessage() : "null")); |
|||
|
|||
// 播放离场成功音频 |
|||
VenueSceneUtils.playAudio("离场成功"); |
|||
|
|||
// 执行门禁控制 |
|||
VenueSceneUtils.openDoorAfterDetect(); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationSuccess(result); |
|||
listener.showToast(result != null && result.getMessage() != null ? |
|||
result.getMessage() : "离场成功"); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onError(int errorCode, String errorMessage) { |
|||
LogManager.logError(TAG, "离场校验失败 - code: " + errorCode + ", message: " + errorMessage); |
|||
Log.e(TAG, "离场校验失败 - code: " + errorCode + ", message: " + errorMessage); |
|||
|
|||
// 处理特殊错误码 |
|||
handleLeaveVerificationError(errorCode, errorMessage); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(errorCode, errorMessage); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onException(Throwable throwable) { |
|||
LogManager.logError(TAG, "离场校验网络异常", throwable); |
|||
Log.e(TAG, "离场校验网络异常: " + throwable.getMessage(), throwable); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "网络请求异常: " + throwable.getMessage()); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onComplete() { |
|||
LogManager.logInfo(TAG, "离场校验网络请求完成"); |
|||
Log.d(TAG, "离场校验网络请求完成"); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationComplete(); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
} catch (Exception e) { |
|||
LogManager.logError(TAG, "执行离场校验时发生异常", e); |
|||
Log.e(TAG, "执行离场校验时发生异常: " + e.getMessage(), e); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "系统异常: " + e.getMessage()); |
|||
listener.onLeaveVerificationComplete(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 执行验证码离场校验 |
|||
* @param verifyCode 验证码 |
|||
*/ |
|||
public void performCodeLeaveVerification(String verifyCode) { |
|||
LogManager.logInfo(TAG, "开始执行验证码离场校验"); |
|||
Log.d(TAG, "performCodeLeaveVerification - verifyCode: " + verifyCode); |
|||
|
|||
try { |
|||
// 获取设备信息 |
|||
DeviceSelectDataManager dataManager = DeviceSelectDataManager.getInstance(context); |
|||
String token = dataManager.getSessionToken(); |
|||
int hardwareId = dataManager.getSelectedHardwareId(); |
|||
|
|||
if (token.isEmpty()) { |
|||
LogManager.logError(TAG, "离场校验失败:token为空"); |
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "设备未授权,请重新登录"); |
|||
} |
|||
return; |
|||
} |
|||
|
|||
if (hardwareId <= 0) { |
|||
LogManager.logError(TAG, "离场校验失败:hardwareId无效"); |
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "设备ID无效,请重新选择设备"); |
|||
} |
|||
return; |
|||
} |
|||
|
|||
LogManager.logInfo(TAG, "验证码离场校验参数 - hardwareId: " + hardwareId + ", verifyCode: " + verifyCode); |
|||
|
|||
// 通知开始校验 |
|||
if (listener != null) { |
|||
listener.onLeaveVerificationStart(); |
|||
} |
|||
|
|||
// 调用离场校验接口(type=1表示验证码验证) |
|||
NetworkUtils.checkLeave(token, 1, hardwareId, verifyCode, null, |
|||
new NetworkCallback<PadApiService.CheckLeaveResult>() { |
|||
@Override |
|||
public void onStart() { |
|||
LogManager.logInfo(TAG, "验证码离场校验网络请求开始"); |
|||
Log.d(TAG, "验证码离场校验网络请求开始"); |
|||
} |
|||
|
|||
@Override |
|||
public void onSuccess(PadApiService.CheckLeaveResult result) { |
|||
LogManager.logInfo(TAG, "验证码离场校验成功"); |
|||
Log.d(TAG, "验证码离场校验成功 - message: " + (result != null ? result.getMessage() : "null")); |
|||
|
|||
// 播放离场成功音频 |
|||
VenueSceneUtils.playAudio("离场成功"); |
|||
|
|||
// 执行门禁控制 |
|||
VenueSceneUtils.openDoorAfterDetect(); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationSuccess(result); |
|||
listener.showToast(result != null && result.getMessage() != null ? |
|||
result.getMessage() : "离场成功"); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onError(int errorCode, String errorMessage) { |
|||
LogManager.logError(TAG, "验证码离场校验失败 - code: " + errorCode + ", message: " + errorMessage); |
|||
Log.e(TAG, "验证码离场校验失败 - code: " + errorCode + ", message: " + errorMessage); |
|||
|
|||
// 处理特殊错误码 |
|||
handleLeaveVerificationError(errorCode, errorMessage); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(errorCode, errorMessage); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onException(Throwable throwable) { |
|||
LogManager.logError(TAG, "验证码离场校验网络异常", throwable); |
|||
Log.e(TAG, "验证码离场校验网络异常: " + throwable.getMessage(), throwable); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "网络请求异常: " + throwable.getMessage()); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onComplete() { |
|||
LogManager.logInfo(TAG, "验证码离场校验网络请求完成"); |
|||
Log.d(TAG, "验证码离场校验网络请求完成"); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationComplete(); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
} catch (Exception e) { |
|||
LogManager.logError(TAG, "执行验证码离场校验时发生异常", e); |
|||
Log.e(TAG, "执行验证码离场校验时发生异常: " + e.getMessage(), e); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "系统异常: " + e.getMessage()); |
|||
listener.onLeaveVerificationComplete(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 执行扫码器离场校验 |
|||
* @param decryptText 解密文本 |
|||
*/ |
|||
public void performScannerLeaveVerification(String decryptText) { |
|||
LogManager.logInfo(TAG, "开始执行扫码器离场校验"); |
|||
Log.d(TAG, "performScannerLeaveVerification - decryptText: " + decryptText); |
|||
|
|||
try { |
|||
// 获取设备信息 |
|||
DeviceSelectDataManager dataManager = DeviceSelectDataManager.getInstance(context); |
|||
String token = dataManager.getSessionToken(); |
|||
int hardwareId = dataManager.getSelectedHardwareId(); |
|||
|
|||
if (token.isEmpty()) { |
|||
LogManager.logError(TAG, "离场校验失败:token为空"); |
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "设备未授权,请重新登录"); |
|||
} |
|||
return; |
|||
} |
|||
|
|||
if (hardwareId <= 0) { |
|||
LogManager.logError(TAG, "离场校验失败:hardwareId无效"); |
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "设备ID无效,请重新选择设备"); |
|||
} |
|||
return; |
|||
} |
|||
|
|||
LogManager.logInfo(TAG, "扫码器离场校验参数 - hardwareId: " + hardwareId + ", decryptText长度: " + |
|||
(decryptText != null ? decryptText.length() : 0)); |
|||
|
|||
// 通知开始校验 |
|||
if (listener != null) { |
|||
listener.onLeaveVerificationStart(); |
|||
} |
|||
|
|||
// 调用离场校验接口(type=4表示扫码器验证) |
|||
NetworkUtils.checkLeave(token, 4, hardwareId, null, decryptText, |
|||
new NetworkCallback<PadApiService.CheckLeaveResult>() { |
|||
@Override |
|||
public void onStart() { |
|||
LogManager.logInfo(TAG, "扫码器离场校验网络请求开始"); |
|||
Log.d(TAG, "扫码器离场校验网络请求开始"); |
|||
} |
|||
|
|||
@Override |
|||
public void onSuccess(PadApiService.CheckLeaveResult result) { |
|||
LogManager.logInfo(TAG, "扫码器离场校验成功"); |
|||
Log.d(TAG, "扫码器离场校验成功 - message: " + (result != null ? result.getMessage() : "null")); |
|||
|
|||
// 播放离场成功音频 |
|||
VenueSceneUtils.playAudio("离场成功"); |
|||
|
|||
// 执行门禁控制 |
|||
VenueSceneUtils.openDoorAfterDetect(); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationSuccess(result); |
|||
listener.showToast(result != null && result.getMessage() != null ? |
|||
result.getMessage() : "离场成功"); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onError(int errorCode, String errorMessage) { |
|||
LogManager.logError(TAG, "扫码器离场校验失败 - code: " + errorCode + ", message: " + errorMessage); |
|||
Log.e(TAG, "扫码器离场校验失败 - code: " + errorCode + ", message: " + errorMessage); |
|||
|
|||
// 处理特殊错误码 |
|||
handleLeaveVerificationError(errorCode, errorMessage); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(errorCode, errorMessage); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onException(Throwable throwable) { |
|||
LogManager.logError(TAG, "扫码器离场校验网络异常", throwable); |
|||
Log.e(TAG, "扫码器离场校验网络异常: " + throwable.getMessage(), throwable); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "网络请求异常: " + throwable.getMessage()); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onComplete() { |
|||
LogManager.logInfo(TAG, "扫码器离场校验网络请求完成"); |
|||
Log.d(TAG, "扫码器离场校验网络请求完成"); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationComplete(); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
} catch (Exception e) { |
|||
LogManager.logError(TAG, "执行扫码器离场校验时发生异常", e); |
|||
Log.e(TAG, "执行扫码器离场校验时发生异常: " + e.getMessage(), e); |
|||
|
|||
if (listener != null) { |
|||
listener.onLeaveVerificationError(-1, "系统异常: " + e.getMessage()); |
|||
listener.onLeaveVerificationComplete(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 处理离场校验特殊错误码 |
|||
* @param errorCode 错误代码 |
|||
* @param errorMessage 错误消息 |
|||
*/ |
|||
private void handleLeaveVerificationError(int errorCode, String errorMessage) { |
|||
try { |
|||
switch (errorCode) { |
|||
case 902: |
|||
// 订单超期需要扫码补缴 |
|||
LogManager.logInfo(TAG, "处理902错误 - 订单超期需要扫码补缴"); |
|||
VenueSceneUtils.playAudio("订单超期需要扫码补缴"); |
|||
if (listener != null) { |
|||
listener.showToast(errorMessage != null ? errorMessage : "订单超期,需要扫码补缴"); |
|||
} |
|||
break; |
|||
|
|||
case 302: |
|||
// 跳转到验证结果页面 |
|||
LogManager.logInfo(TAG, "处理302错误 - 跳转到验证结果页面"); |
|||
// 这里可以添加页面跳转逻辑 |
|||
break; |
|||
|
|||
case 502: |
|||
// 服务器错误,特殊处理 |
|||
LogManager.logInfo(TAG, "处理502错误 - 服务器暂时不可用"); |
|||
if (listener != null) { |
|||
listener.showToast("服务器暂时不可用,请稍后再试"); |
|||
} |
|||
break; |
|||
|
|||
default: |
|||
// 其他错误 |
|||
LogManager.logInfo(TAG, "处理其他错误 - code: " + errorCode); |
|||
if (listener != null) { |
|||
listener.showToast(errorMessage != null ? errorMessage : "离场失败"); |
|||
} |
|||
break; |
|||
} |
|||
} catch (Exception e) { |
|||
LogManager.logError(TAG, "处理离场校验错误时发生异常", e); |
|||
Log.e(TAG, "处理离场校验错误时发生异常: " + e.getMessage(), e); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,176 @@ |
|||
package com.ouxuan.oxface.utils; |
|||
|
|||
import android.content.Context; |
|||
import android.util.Log; |
|||
|
|||
import com.ouxuan.oxface.data.DeviceSelectDataManager; |
|||
import com.ouxuan.oxface.network.api.PadApiService; |
|||
|
|||
/** |
|||
* 场所场景工具类 |
|||
* 用于判断当前是进场还是离场场景,以及相关的控制功能 |
|||
*/ |
|||
public class VenueSceneUtils { |
|||
|
|||
private static final String TAG = "VenueSceneUtils"; |
|||
|
|||
// 场景类型常量 |
|||
public static final String SCENE_VENUE_ENTER = "venue_enter"; // 进场场景 |
|||
public static final String SCENE_VENUE_LEAVE = "venue_leave"; // 离场场景 |
|||
public static final String SCENE_DEFAULT = "default"; // 默认场景 |
|||
|
|||
/** |
|||
* 判断当前是否为离场场景 |
|||
* @param context 上下文 |
|||
* @return true表示离场场景,false表示进场场景 |
|||
*/ |
|||
public static boolean isLeaveScene(Context context) { |
|||
try { |
|||
DeviceSelectDataManager dataManager = DeviceSelectDataManager.getInstance(context); |
|||
PadApiService.PadConfig padConfig = dataManager.getPadConfig(); |
|||
|
|||
if (padConfig != null) { |
|||
String padUseScene = padConfig.getPadUseScene(); |
|||
boolean isLeave = SCENE_VENUE_LEAVE.equals(padUseScene); |
|||
|
|||
LogManager.logInfo(TAG, "场景判断 - pad_use_scene: " + padUseScene + ", 是否离场: " + isLeave); |
|||
Log.d(TAG, "场景判断 - pad_use_scene: " + padUseScene + ", 是否离场: " + isLeave); |
|||
|
|||
return isLeave; |
|||
} else { |
|||
LogManager.logWarning(TAG, "无法获取PadConfig,默认为进场场景"); |
|||
Log.w(TAG, "无法获取PadConfig,默认为进场场景"); |
|||
return false; |
|||
} |
|||
} catch (Exception e) { |
|||
LogManager.logError(TAG, "判断场景类型时发生异常,默认为进场场景", e); |
|||
Log.e(TAG, "判断场景类型时发生异常,默认为进场场景: " + e.getMessage(), e); |
|||
return false; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 获取当前场景类型描述 |
|||
* @param context 上下文 |
|||
* @return 场景描述字符串 |
|||
*/ |
|||
public static String getSceneDescription(Context context) { |
|||
return isLeaveScene(context) ? "离场场景" : "进场场景"; |
|||
} |
|||
|
|||
/** |
|||
* 获取pad使用场景配置值 |
|||
* @param context 上下文 |
|||
* @return pad_use_scene配置值 |
|||
*/ |
|||
public static String getPadUseScene(Context context) { |
|||
try { |
|||
DeviceSelectDataManager dataManager = DeviceSelectDataManager.getInstance(context); |
|||
PadApiService.PadConfig padConfig = dataManager.getPadConfig(); |
|||
|
|||
if (padConfig != null) { |
|||
String padUseScene = padConfig.getPadUseScene(); |
|||
Log.d(TAG, "获取pad_use_scene: " + padUseScene); |
|||
return padUseScene != null ? padUseScene : SCENE_DEFAULT; |
|||
} else { |
|||
Log.w(TAG, "无法获取PadConfig,返回默认场景"); |
|||
return SCENE_DEFAULT; |
|||
} |
|||
} catch (Exception e) { |
|||
Log.e(TAG, "获取pad_use_scene时发生异常: " + e.getMessage(), e); |
|||
return SCENE_DEFAULT; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 播放音频提示 |
|||
* 根据用户确认信息,暂时只输出日志 |
|||
* @param audioType 音频类型(如:离场成功、订单超期需要扫码补缴等) |
|||
*/ |
|||
public static void playAudio(String audioType) { |
|||
try { |
|||
LogManager.logInfo(TAG, "播放音频: " + audioType); |
|||
Log.d(TAG, "playAudio() - 音频类型: " + audioType); |
|||
|
|||
// 根据用户确认,暂时只输出日志,后续可扩展实际音频播放逻辑 |
|||
// 可以在这里添加实际的音频播放实现 |
|||
} catch (Exception e) { |
|||
LogManager.logError(TAG, "播放音频时发生异常", e); |
|||
Log.e(TAG, "播放音频时发生异常: " + e.getMessage(), e); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 门禁控制 - 检测后开门 |
|||
* 根据用户确认信息,暂时只输出日志 |
|||
*/ |
|||
public static void openDoorAfterDetect() { |
|||
try { |
|||
LogManager.logInfo(TAG, "执行门禁控制 - 检测后开门"); |
|||
Log.d(TAG, "openDoorAfterDetect() - 门禁控制,检测后开门"); |
|||
|
|||
// 根据用户确认,暂时只输出日志,后续可扩展实际门禁控制逻辑 |
|||
// 可以在这里添加实际的门禁控制实现 |
|||
} catch (Exception e) { |
|||
LogManager.logError(TAG, "门禁控制时发生异常", e); |
|||
Log.e(TAG, "门禁控制时发生异常: " + e.getMessage(), e); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 获取门禁相关配置 |
|||
* @param context 上下文 |
|||
* @return 门禁配置信息,如果获取失败返回null |
|||
*/ |
|||
public static GateConfig getGateConfig(Context context) { |
|||
try { |
|||
DeviceSelectDataManager dataManager = DeviceSelectDataManager.getInstance(context); |
|||
PadApiService.PadConfig padConfig = dataManager.getPadConfig(); |
|||
|
|||
if (padConfig != null) { |
|||
GateConfig gateConfig = new GateConfig(); |
|||
gateConfig.gateEnterOpenEnable = padConfig.getExtension() != null && |
|||
padConfig.getExtension().getPadSetting() != null && |
|||
padConfig.getExtension().getPadSetting().isGateEnterOpenEnable(); |
|||
|
|||
gateConfig.gateAbGpio = padConfig.getExtension() != null && |
|||
padConfig.getExtension().getPadSetting() != null && |
|||
padConfig.getExtension().getPadSetting().isGateAbGpio(); |
|||
|
|||
gateConfig.gateAbUdp = padConfig.getExtension() != null && |
|||
padConfig.getExtension().getPadSetting() != null && |
|||
padConfig.getExtension().getPadSetting().isGateAbUdp(); |
|||
|
|||
Log.d(TAG, "门禁配置 - EnterOpenEnable: " + gateConfig.gateEnterOpenEnable + |
|||
", AbGpio: " + gateConfig.gateAbGpio + |
|||
", AbUdp: " + gateConfig.gateAbUdp); |
|||
|
|||
return gateConfig; |
|||
} else { |
|||
Log.w(TAG, "无法获取PadConfig,门禁配置返回null"); |
|||
return null; |
|||
} |
|||
} catch (Exception e) { |
|||
Log.e(TAG, "获取门禁配置时发生异常: " + e.getMessage(), e); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 门禁配置信息类 |
|||
*/ |
|||
public static class GateConfig { |
|||
public boolean gateEnterOpenEnable = false; // 门禁进入开启使能 |
|||
public boolean gateAbGpio = false; // 门禁AB GPIO |
|||
public boolean gateAbUdp = false; // 门禁AB UDP |
|||
|
|||
@Override |
|||
public String toString() { |
|||
return "GateConfig{" + |
|||
"gateEnterOpenEnable=" + gateEnterOpenEnable + |
|||
", gateAbGpio=" + gateAbGpio + |
|||
", gateAbUdp=" + gateAbUdp + |
|||
'}'; |
|||
} |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue