Android Q 设备重启时间不更新

Android Q 设备重启时间不更新

使用Android Q 设备一段时间之后,设备重启之后系统时间会恢复成之前开机的时间,出现此问题

fix:开机之后,set system time to kernel
1、文件路径:
android/framework/base/services/core/java/com/android/server/AlarmManagerService.java
2、修改记录:

diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index 8315993..87194a7 100755
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -1518,6 +1518,7 @@ class AlarmManagerService extends SystemService {
                 Slog.i(TAG, "Current time only " + mInjector.getCurrentTimeMillis()
                         + ", advancing to build time " + systemBuildTime);
                 mInjector.setKernelTime(systemBuildTime);
+                new timeSetReceiver();
             }
 
             // Determine SysUI's uid
@@ -4155,6 +4156,8 @@ class AlarmManagerService extends SystemService {
         public static final int APP_STANDBY_PAROLE_CHANGED = 6;
         public static final int REMOVE_FOR_STOPPED = 7;
         public static final int UNREGISTER_CANCEL_LISTENER = 8;
         //add by hhm
+        public static final int CHECK_SYSTEM_TIME = 9;
 
         AlarmHandler() {
             super(Looper.myLooper());
@@ -4243,13 +4246,33 @@ class AlarmManagerService extends SystemService {
                         pi.unregisterCancelListener(mOperationCancelListener);
                     }
                     break;
-
+                //add hhm
+                case CHECK_SYSTEM_TIME:
+                       Intent timeSetIntent = new Intent(Intent.ACTION_TIME_CHANGED);
+                       timeSetIntent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING | Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
+                       getContext().sendBroadcastAsUser(timeSetIntent, UserHandle.ALL);
+                    break;
                 default:
                     // nope, just ignore it
                     break;
             }
         }
     }
+    // add by hhm
+    class timeSetReceiver extends BroadcastReceiver {
+        public timeSetReceiver() {
+            IntentFilter filter = new IntentFilter();
+            filter.addAction(Intent.ACTION_BOOT_COMPLETED);
+            getContext().registerReceiver(this, filter);
+        }
+
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
+                mHandler.sendEmptyMessage(AlarmHandler.CHECK_SYSTEM_TIME);
+            }
+        }
+    }
 
     class ClockReceiver extends BroadcastReceiver {
         public ClockReceiver() {
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值