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

我有一个启动 Activity 的服务并且屏幕保护程序已打开。 如何以编程方式关闭 Amazon Fire TV 屏幕保护程序?

【问题讨论】:

    标签: android screensaver amazon-fire-tv


    【解决方案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() 中调用了它,它可以工作

    【讨论】:

      猜你喜欢
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多