设置屏保条件默认为插入座充,插入座充之后无法进入屏保

该代码段展示了Android系统PowerManagerService中新增的一个方法,用于获取坞站充电状态。通过读取'/sys/class/switchs/dock/state'节点的值来判断设备是否连接到桌面坞站,并根据返回值确定是否处于桌面坞站模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LA.UM.7.6.2/LINUX/android/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java 
old mode 100644
new mode 100755
index 697801f..d71b145
@@ -102,5 +102,7 @@ import com.android.server.power.batterysaver.BatterySaverStateMachine;
 import com.android.server.power.batterysaver.BatterySavingStats;
 
+import java.io.BufferedReader;
 import java.io.FileDescriptor;
+import java.io.FileReader;
 import java.io.PrintWriter;
 import java.lang.annotation.Retention;
@@ -2129,4 +2131,32 @@ public final class PowerManagerService extends SystemService
     }
 
+    private static final String CRADLE_CHARGING_NODE = "/sys/class/switchs/dock/state";
+    private static int getDockState() {
+        int dockState = Intent.EXTRA_DOCK_STATE_UNDOCKED;
+        BufferedReader reader = null;
+        android.util.Log.d("DockState", "getDockState>>>>>>>>>>>>> ");
+        try {
+            reader = new BufferedReader(new FileReader(CRADLE_CHARGING_NODE));
+            String prop = reader.readLine();
+            android.util.Log.d("DockState", "prop : " + prop);
+            if (prop != null && prop.equals("1")) {
+                dockState = Intent.EXTRA_DOCK_STATE_DESK;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            android.util.Log.d("DockState", "read cradle status failed!");
+        } finally {
+            if (reader != null) {
+                try {
+                    reader.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        android.util.Log.d("DockState", "dockState : " + dockState);
+        return dockState;
+    }
+
     /**
      * Returns true if the device should automatically nap and start dreaming when the user
@@ -2134,7 +2164,8 @@ public final class PowerManagerService extends SystemService
      */
     private boolean shouldNapAtBedTimeLocked() {
+        int newDockState = getDockState();
         return mDreamsActivateOnSleepSetting
                 || (mDreamsActivateOnDockSetting
-                        && mDockState != Intent.EXTRA_DOCK_STATE_UNDOCKED);
+                        && newDockState != Intent.EXTRA_DOCK_STATE_UNDOCKED);
     }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值