|
@ -590,6 +590,24 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
private void initNetworkStatusIndicator() { |
|
|
private void initNetworkStatusIndicator() { |
|
|
try { |
|
|
try { |
|
|
networkStatusIndicator = new NetworkStatusIndicator(this, relativeLayout); |
|
|
networkStatusIndicator = new NetworkStatusIndicator(this, relativeLayout); |
|
|
|
|
|
|
|
|
|
|
|
// 设置网络恢复监听器 |
|
|
|
|
|
networkStatusIndicator.setNetworkRecoveryListener(new NetworkStatusIndicator.NetworkRecoveryListener() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void onNetworkRecovered() { |
|
|
|
|
|
LogManager.logInfo(TAG, "接收到网络恢复通知,恢复摄像头预览"); |
|
|
|
|
|
// 网络恢复时恢复摄像头预览 |
|
|
|
|
|
resumeCamera(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void onNetworkLost() { |
|
|
|
|
|
LogManager.logWarning(TAG, "接收到网络断开通知"); |
|
|
|
|
|
// 网络断开时可以执行一些操作(可选) |
|
|
|
|
|
// 例如:清理缓存、停止不必要的网络请求等 |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
networkStatusIndicator.startMonitoring(); |
|
|
networkStatusIndicator.startMonitoring(); |
|
|
LogManager.logInfo(TAG, "网络状态指示器初始化完成"); |
|
|
LogManager.logInfo(TAG, "网络状态指示器初始化完成"); |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
@ -1265,13 +1283,37 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
|
|
|
|
|
|
// 判断是进场还是离场场景 |
|
|
// 判断是进场还是离场场景 |
|
|
if (VenueSceneUtils.isLeaveScene(OXFaceOnlineActivity.this)) { |
|
|
if (VenueSceneUtils.isLeaveScene(OXFaceOnlineActivity.this)) { |
|
|
// 离场场景:调用离场校验 |
|
|
|
|
|
LogManager.logInfo(TAG, "检测到离场场景,执行离场校验"); |
|
|
|
|
|
performLeaveVerification(base64img); |
|
|
|
|
|
|
|
|
// 离场场景:先检查网络状态 |
|
|
|
|
|
if (isNetworkAvailable()) { |
|
|
|
|
|
LogManager.logInfo(TAG, "检测到离场场景,网络可用,执行离场校验"); |
|
|
|
|
|
performLeaveVerification(base64img); |
|
|
|
|
|
} else { |
|
|
|
|
|
LogManager.logWarning(TAG, "检测到离场场景,但网络不可用,跳过离场校验"); |
|
|
|
|
|
showLoadingStatus("无网络..."); |
|
|
|
|
|
// 3秒后隐藏提示 |
|
|
|
|
|
new Handler().postDelayed(new Runnable() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void run() { |
|
|
|
|
|
hideLoadingStatus(); |
|
|
|
|
|
} |
|
|
|
|
|
}, 3000); |
|
|
|
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
// 进场场景:调用原有的订单核销方法 |
|
|
|
|
|
LogManager.logInfo(TAG, "检测到进场场景,执行订单核销"); |
|
|
|
|
|
getCheckOrder(); |
|
|
|
|
|
|
|
|
// 进场场景:先检查网络状态 |
|
|
|
|
|
if (isNetworkAvailable()) { |
|
|
|
|
|
LogManager.logInfo(TAG, "检测到进场场景,网络可用,执行订单核销"); |
|
|
|
|
|
getCheckOrder(); |
|
|
|
|
|
} else { |
|
|
|
|
|
LogManager.logWarning(TAG, "检测到进场场景,但网络不可用,跳过订单核销"); |
|
|
|
|
|
showLoadingStatus("无网络..."); |
|
|
|
|
|
// 3秒后隐藏提示 |
|
|
|
|
|
new Handler().postDelayed(new Runnable() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void run() { |
|
|
|
|
|
hideLoadingStatus(); |
|
|
|
|
|
} |
|
|
|
|
|
}, 3000); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 处理完成后重置标志 |
|
|
// 处理完成后重置标志 |
|
@ -1923,4 +1965,34 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
|
|
|
|
|
|
LogManager.logWarning(TAG, "摄像头已强制恢复,所有对话框已关闭"); |
|
|
LogManager.logWarning(TAG, "摄像头已强制恢复,所有对话框已关闭"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 检查网络是否可用 |
|
|
|
|
|
* @return true 如果网络可用,false 否则 |
|
|
|
|
|
*/ |
|
|
|
|
|
private boolean isNetworkAvailable() { |
|
|
|
|
|
try { |
|
|
|
|
|
// 使用NetworkUtils检查网络连接状态 |
|
|
|
|
|
if (!com.blankj.utilcode.util.NetworkUtils.isConnected()) { |
|
|
|
|
|
LogManager.logWarning(TAG, "网络未连接"); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 进一步检查网络质量(可选) |
|
|
|
|
|
if (networkStatusIndicator != null) { |
|
|
|
|
|
NetworkStatusIndicator.NetworkStatus currentStatus = networkStatusIndicator.getCurrentNetworkStatus(); |
|
|
|
|
|
if (currentStatus == NetworkStatusIndicator.NetworkStatus.POOR) { |
|
|
|
|
|
LogManager.logWarning(TAG, "网络状态不佳:" + currentStatus.getDescription()); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
LogManager.logDebug(TAG, "网络状态正常"); |
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
LogManager.logError(TAG, "检查网络状态失败", e); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |