|
@ -191,7 +191,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
|
|
|
|
|
|
// 摄像头暂停管理相关 |
|
|
// 摄像头暂停管理相关 |
|
|
private Handler cameraTimeoutHandler; |
|
|
private Handler cameraTimeoutHandler; |
|
|
private static final int CAMERA_RESUME_TIMEOUT = 60000; // 30秒超时 |
|
|
|
|
|
|
|
|
private static final int CAMERA_RESUME_TIMEOUT = 60000; // 60秒超时 |
|
|
private boolean isCameraPausedByDialog = false; // 标记是否由对话框暂停 |
|
|
private boolean isCameraPausedByDialog = false; // 标记是否由对话框暂停 |
|
|
private int pauseRequestCount = 0; // 暂停请求计数 |
|
|
private int pauseRequestCount = 0; // 暂停请求计数 |
|
|
|
|
|
|
|
@ -462,7 +462,8 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
@Override |
|
|
@Override |
|
|
public void navigateToOrderSelectionPage(String orderData, int verificationType, String faceBase64) { |
|
|
public void navigateToOrderSelectionPage(String orderData, int verificationType, String faceBase64) { |
|
|
// 在跳转到订单选择页面时暂停摄像头 |
|
|
// 在跳转到订单选择页面时暂停摄像头 |
|
|
pauseCameraWithTimeout(); |
|
|
|
|
|
|
|
|
// pauseCameraWithTimeout(); |
|
|
|
|
|
pauseCamera(); |
|
|
LogManager.logInfo(TAG, "跳转订单选择页面时暂停摄像头"); |
|
|
LogManager.logInfo(TAG, "跳转订单选择页面时暂停摄像头"); |
|
|
|
|
|
|
|
|
// 跳转到订单选择页面 |
|
|
// 跳转到订单选择页面 |
|
@ -797,7 +798,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
LogManager.logInfo(TAG, "门禁不可用弹窗显示,暂停摄像头和中断操作 - " + sceneInfo); |
|
|
LogManager.logInfo(TAG, "门禁不可用弹窗显示,暂停摄像头和中断操作 - " + sceneInfo); |
|
|
|
|
|
|
|
|
// 暂停摄像头和中断其他操作 |
|
|
// 暂停摄像头和中断其他操作 |
|
|
pauseCameraWithTimeout(); |
|
|
|
|
|
|
|
|
pauseCamera(); |
|
|
|
|
|
|
|
|
LogManager.logInfo(TAG, "摄像头暂停完成 - " + sceneInfo); |
|
|
LogManager.logInfo(TAG, "摄像头暂停完成 - " + sceneInfo); |
|
|
} |
|
|
} |
|
@ -1338,7 +1339,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
LogManager.logInfo(TAG, "用户点击验证码开门"); |
|
|
LogManager.logInfo(TAG, "用户点击验证码开门"); |
|
|
|
|
|
|
|
|
// 使用新的暂停摄像头方法 |
|
|
// 使用新的暂停摄像头方法 |
|
|
pauseCameraWithTimeout(); |
|
|
|
|
|
|
|
|
pauseCamera(); |
|
|
LogManager.logInfo(TAG, "暂停摄像头预览 - 使用带超时的暂停方法"); |
|
|
LogManager.logInfo(TAG, "暂停摄像头预览 - 使用带超时的暂停方法"); |
|
|
|
|
|
|
|
|
// 启动验证码Activity |
|
|
// 启动验证码Activity |
|
@ -1643,7 +1644,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
if (gateABController != null) { |
|
|
if (gateABController != null) { |
|
|
|
|
|
|
|
|
// 暂停摄像头预览10秒后再恢复,避免频繁执行开门操作 |
|
|
// 暂停摄像头预览10秒后再恢复,避免频繁执行开门操作 |
|
|
pauseCameraWithTimeout(); |
|
|
|
|
|
|
|
|
pauseCamera(); |
|
|
LogManager.logInfo(TAG, "暂停摄像头预览10秒,避免频繁执行开门操作"); |
|
|
LogManager.logInfo(TAG, "暂停摄像头预览10秒,避免频繁执行开门操作"); |
|
|
|
|
|
|
|
|
// 10秒后恢复摄像头预览 |
|
|
// 10秒后恢复摄像头预览 |
|
@ -2205,7 +2206,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
@Override |
|
|
@Override |
|
|
public void onDialogShow() { |
|
|
public void onDialogShow() { |
|
|
// 暂停摄像头预览 |
|
|
// 暂停摄像头预览 |
|
|
pauseCameraWithTimeout(); |
|
|
|
|
|
|
|
|
pauseCamera(); |
|
|
LogManager.logInfo(TAG, "解锁密码弹窗显示,摄像头已暂停"); |
|
|
LogManager.logInfo(TAG, "解锁密码弹窗显示,摄像头已暂停"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -2784,7 +2785,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
String action = intent.getAction(); |
|
|
String action = intent.getAction(); |
|
|
if ("com.ouxuan.oxface.ACTION_PAUSE_CAMERA".equals(action)) { |
|
|
if ("com.ouxuan.oxface.ACTION_PAUSE_CAMERA".equals(action)) { |
|
|
// 暂停摄像头预览 |
|
|
// 暂停摄像头预览 |
|
|
pauseCameraWithTimeout(); |
|
|
|
|
|
|
|
|
pauseCamera(); |
|
|
LogManager.logInfo(TAG, "接收到暂停摄像头预览广播"); |
|
|
LogManager.logInfo(TAG, "接收到暂停摄像头预览广播"); |
|
|
} else if ("com.ouxuan.oxface.ACTION_RESUME_CAMERA".equals(action)) { |
|
|
} else if ("com.ouxuan.oxface.ACTION_RESUME_CAMERA".equals(action)) { |
|
|
// 恢复摄像头预览 |
|
|
// 恢复摄像头预览 |
|
@ -2795,6 +2796,30 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
|
|
|
* 暂停摄像头 |
|
|
|
|
|
*/ |
|
|
|
|
|
private void pauseCamera() { |
|
|
|
|
|
pauseRequestCount++; |
|
|
|
|
|
isCameraPausedByDialog = true; |
|
|
|
|
|
isNeedCamera = false; |
|
|
|
|
|
|
|
|
|
|
|
// 取消之前的超时任务 |
|
|
|
|
|
if (cameraTimeoutHandler != null) { |
|
|
|
|
|
cameraTimeoutHandler.removeCallbacksAndMessages(null); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 清空一次画布,确保暂停时画面干净 |
|
|
|
|
|
try { |
|
|
|
|
|
LivenessModel emptyModel = new LivenessModel(); |
|
|
|
|
|
emptyModel.setTrackFaceInfo(null); |
|
|
|
|
|
showFrame(emptyModel); |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
LogManager.logError(TAG, "清空画布时发生异常", e); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
LogManager.logInfo(TAG, "摄像头已暂停,请求计数: " + pauseRequestCount + ", 超时时间: " + "ms"); |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
* 暂停摄像头并设置超时恢复 |
|
|
* 暂停摄像头并设置超时恢复 |
|
|
*/ |
|
|
*/ |
|
|
private void pauseCameraWithTimeout() { |
|
|
private void pauseCameraWithTimeout() { |
|
|