【问题标题】:How to turn screen off based on proximity sensor?如何根据接近传感器关闭屏幕?
【发布时间】:2021-08-03 09:40:29
【问题描述】:

最初的想法是重新创建基本的手机行为,即在您靠近手机时关闭屏幕,并在您拨打电话时将其重新打开。

我花了很多时间试图回答这个问题,但没有找到任何简单的解决方案,我相信在这里回答这个问题可能会对某些人有所帮助。我不会展示如何处理调用状态,因为此解决方案允许您在需要时启用/禁用行为。

【问题讨论】:

  • 这不是你写问答的方式。写一个正确的问题,然后提供答案作为答案,而不是写在问题本身
  • 哦,好的,我会这样做的

标签: android kotlin screen call wakelock


【解决方案1】:

可以在GitHub上找到示例项目

首先你需要在 AndroidManifest.xml 中声明你正在使用 Wakelock :

<uses-permission android:name="android.permission.WAKE_LOCK" />

然后在你的活动中导入 PowerManager

import android.os.PowerManager

声明你的属性

private lateinit var powerManager: PowerManager
private lateinit var lock: PowerManager.WakeLock

在 onCreate 方法中实例化它们: (用另一个唯一标签替换“simplewakelock:wakelocktag”)

powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
lock = powerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK,"simplewakelock:wakelocktag")

然后您可以使用以下命令启用和禁用锁定(以及行为):

// Enable : Acquire the lock if it was not already acquired
if(!lock.isHeld) lock.acquire()

// Disable : Release the lock if it was not already released
if(lock.isHeld) lock.release()

把它放在你想要的地方,当你不再需要它时不要忘记释放锁(onPause可以是一个好地方),否则即使你切换应用程序也会继续。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 2018-11-12
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多