以编程方式关闭 Amazon Fire TV 屏幕保护程序

Posted

技术标签:

【中文标题】以编程方式关闭 Amazon Fire TV 屏幕保护程序【英文标题】:Dismiss Amazon Fire TV screensaver programmatically 【发布时间】:2016-02-20 08:13:19 【问题描述】:

我有一个启动 Activity 的服务并且屏幕保护程序已打开。 如何?

【问题讨论】:

【参考方案1】:

第一部分关闭锁屏,第二部分关闭屏幕保护程序。不过,我不知道这是否适用于 Amazon Fire TV 屏幕保护程序,但您可以尝试一下。

在活动的 onReceive 或 onCreate 方法中调用此方法。

private void wakeUpTheScreen()
 
  Window win = getWindow();
  win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
  win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
 

我认为您也需要此权限,但我不确定:

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

【讨论】:

它不起作用,如果应用程序在前台,这会阻止屏幕保护程序显示【参考方案2】:
private void turnScreenOn(Activity act) 
    KeyguardManager km = (KeyguardManager) act.getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
    final KeyguardManager.KeyguardLock kl = km.newKeyguardLock("MyKeyguardLock");
    kl.disableKeyguard();

    PowerManager powerManager = (PowerManager) act.getApplicationContext().getSystemService(Context.POWER_SERVICE);
    wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP
            | PowerManager.ON_AFTER_RELEASE, "MyWakeLock");
    wakeLock.acquire();
 

我从 oncreate() 中调用了它,它可以工作

【讨论】:

以上是关于以编程方式关闭 Amazon Fire TV 屏幕保护程序的主要内容,如果未能解决你的问题,请参考以下文章

如何开始为 Amazon Fire TV 开发?

在 Amazon Fire TV 应用商店上兼容/提供 Android TV 应用程序有多难?

Android Studio、Fire TV - 使用 Amazon SDK 编译的问题

Fire TV / Fire OS 的 Google 登录

如何在主屏幕上设置 Fire TV“图标”?

iOS - Apple TV - 以编程方式检测 Apple TV 上的节目