Android 在三星设备上保持屏幕开启

标签 android samsung-mobile lockscreen wakelock

我有一个流媒体应用程序,我想避免屏幕在流媒体时关闭。它适用于我的大多数设备,但不适用于某些三星设备(三星 Galaxy S21 Ultra、三星 Galaxy S10 等)。到目前为止我尝试了什么:

  • 将此添加到我的 Activity 的 onCreate View 中
     this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    
  • 在我的布局 xml 的根组件上添加 keepScreenOn
     android:keepScreenOn="true"
    
  • 在我的 onCreate 中使用电源管理器防止屏幕关闭
     PowerManager powerManager = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
     this.wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "test.");
     this.wakeLock.acquire();
    

  • 不管我做什么,三星屏幕锁定会在一段时间后出现,如下图所示
    enter image description here
    像 WAKE_LOCK 这样的权限当然会添加到 Manifest 中。这似乎很简单,但我不知道如何避免这种情况。我经常收到在三星设备上使用我的应用程序的用户的提示,例如,当他们使用游戏 handle 并且没有主动触摸屏幕时,屏幕会一直关闭。在三星设备上如何避免这种情况?它似乎在所有其他设备上都可以正常工作。我之前也检查了很多堆栈溢出条目,但没有找到任何具体的内容,但也许我错过了一些东西。谁能指出我正确的方向?

    最佳答案

    我偶然发现了这个:
    https://dontkillmyapp.com/samsung
    2021 年更新:尽管 Android 团队 promise 强制 OEM 对非标准应用程序杀戮保持透明,但在 Android 11 中,三星引入了新的严格(默认开启)限制。应用程序不能再在前台服务中保持唤醒锁定。这打破了许多用例,例如健康应用程序现在无法为其用户收集传感器数据。请在此处查看详细信息并阅读以下内容以了解解决方法。

    关于Android 在三星设备上保持屏幕开启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66291556/

    相关文章:

    java - PreferenceActivity 和 BroadcastReceiver - 实现动态首选项

    javascript - Android 7.0 不支持 jQuery 版本?

    android - 使用 findFragmentByTag 抑制 FindBugs 警告

    java - 是否有可用于使用三星电视网络远程控制功能的 API?

    android - 在哪里可以找到有关创建自定义 android 锁屏的示例或教程?

    ios - 在设备锁定时从通知打开应用程序

    Android:自定义 ListView 中的 InflateException

    java - SAAgent(三星配件)java.lang.NoSuchMethodException : <init> [] 的 Proguard 问题

    android - 在应用的发行版中,三星设备中未生成FCM token

    iphone - 模拟iphone锁屏