如果设备在通话过程中靠近脸部,我想使用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();