gpt4 book ai didi

android - 如何在 Kivy 应用程序(Android)中获取 PARTIAL_WAKE_LOCK?

转载 作者:太空狗 更新时间:2023-10-29 13:23:19 25 4
gpt4 key购买 nike

我正在尝试为我的 kivy 应用程序获取 PARTIAL_WAKE_LOCK。它基本上是一个定时器应用程序,当屏幕关闭时,定时器应该继续在后台运行。一切工作正常,除了唤醒锁。这就是我在 python 中实现它的方式:

from jnius import autoclass

PythonActivity = autoclass('org.renpy.android.PythonActivity')
activity = PythonActivity.mActivity

Context = autoclass('android.content.Context')
PowerManager = autoclass('android.os.PowerManager')

pm = activity.getSystemService(Context.POWER_SERVICE)
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 'TAG')

wl.acquire()

该应用程序运行良好,但当屏幕关闭时它崩溃了。应用

def on_pause(self):
return True
def on_resume(self):
pass

方法对我没有帮助,因为它会在屏幕关闭时停止计时器。

在我的 buildozer.spec 文件中我有:

android.permissions = WAKE_LOCK

当我设置:

android.wakelock = True

我只得到screen_bright_wakelock,但我需要partial_wakelock

最佳答案

我猜你误解了这里的WAKE_LOCK。默认情况下,如果您不触摸该应用程序,系统会检测到手机处于空闲状态并锁定。

如果用户关闭屏幕、切换到另一个应用程序等,WAKE_LOCK 将不会执行任何操作。因为此时,您的应用程序必须处于后台,并处于“ sleep ”模式。

您需要的是服务。当应用程序处于后台、屏幕锁定或未锁定时,服务可以继续运行。并且你需要你的应用程序和服务之间的通信链接(内部 OSC 可以,随意在互联网上搜索示例)。

或者,尝试查看来自 Android API 的 AlarmManager/Alarm 是否适合您(从未测试过)。

关于android - 如何在 Kivy 应用程序(Android)中获取 PARTIAL_WAKE_LOCK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com