diff --git a/app/src/main/java/com/nbee/echolink/MainActivity.java b/app/src/main/java/com/nbee/echolink/MainActivity.java index be51f26..fff3c63 100644 --- a/app/src/main/java/com/nbee/echolink/MainActivity.java +++ b/app/src/main/java/com/nbee/echolink/MainActivity.java @@ -1,39 +1,52 @@ package com.nbee.echolink; +import static java.lang.Thread.*; + +import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.os.PowerManager; import android.view.View; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import com.nbee.echolink.service.MonitorService; +import com.nbee.echolink.utils.BatteryOptimizationUtil; import com.nbee.echolink.utils.PermissionUtils; +import com.nbee.echolink.utils.ShellUtils; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; +import timber.log.Timber; + public class MainActivity extends AppCompatActivity { private final String TAG = "MainActivity"; private PermissionUtils permissionUtils; private TextView logTextView; // 将类型从 View 更改为 TextView - + private ShellUtils shellUtils; + private boolean isRoot; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + + isRoot = shellUtils.checkRootPermission(); + if (!isRoot){ + Timber.d("未获取root权限: "+ isRoot); + } logTextView = findViewById(R.id.logTextView); updateLog("初始化日志..."); - - + requestIgnoreBattery(); permissionUtils = new PermissionUtils(this); permissionUtils.checkPermissions(); - // 启动MonitorService服务 + Intent serviceIntent = new Intent(this, MonitorService.class); startService(serviceIntent); } @@ -50,7 +63,17 @@ public class MainActivity extends AppCompatActivity { String logContent = readLogFile(); updateLog(logContent); } - + private void requestIgnoreBattery(){ + Context context = getApplicationContext(); + PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); + boolean hasIgnored = powerManager.isIgnoringBatteryOptimizations(context.getPackageName()); + if(!hasIgnored){ + BatteryOptimizationUtil.requestIgnoreBatteryOptimization(context); + Timber.d("不在在优化电池白名单内"); + } else { + return; + } + } private void updateLog(String newLog) { logTextView.setText(newLog);