• android 11.0 获取当前界面的APP ,在APP的界面禁止灭屏


    客户要求在升级界面不能灭屏,三方APP 不愿意修改,自己在Framework修改的内容,

    超时的时候,设置不灭屏。

    1. diff --git a/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java b/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
    2. index 8ea3b0b7fa..d20a0cd132 100755
    3. --- a/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
    4. +++ b/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
    5. @@ -117,6 +117,11 @@ import java.util.ArrayList;
    6. import java.util.Arrays;
    7. import java.util.List;
    8. import java.util.Objects;
    9. +import android.app.ActivityThread;
    10. +import android.app.usage.UsageStatsManager;
    11. +import java.util.Calendar;
    12. +import android.app.usage.UsageEvents;
    13. +import android.content.ComponentName;
    14. /**
    15. * The power manager service is responsible for coordinating power management
    16. @@ -1958,6 +1963,24 @@ public final class PowerManagerService extends SystemService
    17. Trace.traceEnd(Trace.TRACE_TAG_POWER);
    18. }
    19. }
    20. + // get current app
    21. + public static String getForegroundPackageName(Context context) {
    22. + Calendar calendar = Calendar.getInstance();
    23. + final long end = calendar.getTimeInMillis();
    24. + calendar.add(Calendar.MONTH, -1);
    25. + final long start = calendar.getTimeInMillis();
    26. + UsageStatsManager usageStatsManager = (UsageStatsManager) context.getSystemService(Context.USAGE_STATS_SERVICE);
    27. + UsageEvents usageEvents = usageStatsManager.queryEvents(start, end);
    28. + UsageEvents.Event event = new UsageEvents.Event();
    29. + String packageName = null;
    30. + while (usageEvents.hasNextEvent()) {
    31. + usageEvents.getNextEvent(event);
    32. + if (event.getEventType() == UsageEvents.Event.ACTIVITY_RESUMED) {
    33. + packageName = event.getPackageName();
    34. + }
    35. + }
    36. + return packageName;
    37. + }
    38. /**
    39. * Check profile timeouts and notify profiles that should be locked.
    40. @@ -2294,6 +2317,12 @@ public final class PowerManagerService extends SystemService
    41. if (now < nextTimeout) {
    42. mUserActivitySummary = USER_ACTIVITY_SCREEN_DIM;
    43. }
    44. + // com.cw.update
    45. + String packageName2 = getForegroundPackageName(mContext);
    46. + if( "com.cw.update".equals(packageName2)){
    47. + android.util.Log.d(TAG, "if ture ,so Timeout not work com.cw.update.......");
    48. + mUserActivitySummary = USER_ACTIVITY_SCREEN_BRIGHT;
    49. + }
    50. }
    51. }
    52. if (mUserActivitySummary == 0

  • 相关阅读:
    黑马JVM总结(二十四)
    Java回顾-面向对象(包装类/static/单例模式/final)
    基于Microsoft SemanticKernel和GPT4实现一个智能翻译服务
    软考中级-软件设计师-第1章 软件设计师考试介绍
    带你走进linux 内核 定时器(timer)实现机制
    图像处理与计算机视觉--第二章-成像与图像表示-8问
    c++实现建造者模式
    Go语言入门心法(十五):Go微服务实战
    【力扣】1588. 所有奇数长度子数组的和 <前缀和>
    独立站:最新选品建议
  • 原文地址:https://blog.csdn.net/wed110/article/details/126037249