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