Bootstrap

Android8设置拔出充电器自动关机

通常Android机器拔出充电后,将进入断开充电流程,关闭充电灯和充电图标。

那么需要实现拔出充电器直接进入关机,则需要在充电判断机制中额外增加实现代码。

||

||

修改方案如下:

在系统中存在服务时刻监听的充电状态,因此每次插拔充电器,系统都能实时的切换状态。

所以此修改将在服务中进行添加。

||

frameworks/base/services/core/java/com/android/server/BatteryService.java
@@ -477,6 +477,15 @@ public final class BatteryService extends SystemService {
                         mContext.sendBroadcastAsUser(statusIntent, UserHandle.ALL);
                     }
                 });
+               else if (mPlugType == 0 && mLastPlugType != 0) { //通过前后插拔状态判断               
+                               try {
+                                       Intent intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
+                                       intent.putExtra("android.intent.extra.KEY_CONFIRM", false);
+                                       intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                                       mContext.startActivity(intent);//拔充电器自动关机
+                               } catch (Exception e) {
+                                       Slog.d(TAG, "ACTION_REQUEST_SHUTDOWN.  error");
+                               }

;