如果设备在通话期间靠近脸部,我想使用 PROXIMITY_SCREEN_OFF_WAKE_LOCK 关闭屏幕。但是由于在某些设备上关闭屏幕后立即调用 onPause() 和 onStop() 会中断呼叫。例如,它适用于 HTC One,但不适用于三星 Galaxy S6。我是否需要在单独的服务中处理呼叫以防止中断,或者是否有更简单的方法来获得我想要的?
如果可能的话,我不想将呼叫连接处理外包给单独的服务,因为这将是一项很大的工作。常见的方法是什么?当我想到 Skype、WhatsApp 等时,我认为这不会是一个不寻常的用例……
这是我获取唤醒锁的方式:
int field = 0x00000020;
try {
field = PowerManager.class.getClass().getField("PROXIMITY_SCREEN_OFF_WAKE_LOCK").getInt(null);
} catch (Throwable ignored) {
}
proximityWakeLock = pm.newWakeLock(field, "My Tag1");
proximityWakeLock.acquire();