通常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");
+ }