gpt4 book ai didi

android - 从 Activity 中启动和停止 DayDream 服务的正确方法

转载 作者:行者123 更新时间:2023-11-29 19:29:42 25 4
gpt4 key购买 nike

我正在开发一个应在特殊情况下显示白日梦的应用程序,我到处搜索以找到通过我的 MainActivity 类启动我的白日梦服务的正确方法,但没有成功,

目前我正在使用以下代码来启动白日梦并且实际上它有效,但我需要一个更好的解决方案来为我提供停止白日梦的方法。

 public void startDayDream(){
final Intent intent = new Intent(Intent.ACTION_MAIN);
try {
// Somnabulator is undocumented--may be removed in a future version...
intent.setClassName("com.android.systemui",
"com.android.systemui.Somnambulator");
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
} catch (Exception e) { /* Do nothing */ }
}

最佳答案

我以同样的方式开始它,但我还没有找到任何官方的方式或 Intent 来停止白日梦。

但是,您可以通过 Activity 重新集中注意力来停止做白日梦。为此创建一个服务,并在您想要停止 Daydream 时将服务中的任何 Intent 发送到您的 Activity。作为副作用,如果您的 Activity 在后台,则在接收 Intent 时会出现在最前面。这种方法至少适用于 Android 4.4 到 5.1。

对于 Android 6,模拟唤醒以停止做梦就足够了。

    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, "WakeUpLock");
if (wakeLock.isHeld())
wakeLock.release();
wakeLock.acquire();
wakeLock.release();

关于android - 从 Activity 中启动和停止 DayDream 服务的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40342372/

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