Răsfoiți Sursa

1 分钟自动关机

liuzhenxing1118 4 luni în urmă
părinte
comite
5e9d91920a

+ 0 - 19
.idea/gradle.xml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="GradleMigrationSettings" migrationVersion="1" />
-  <component name="GradleSettings">
-    <option name="linkedExternalProjectsSettings">
-      <GradleProjectSettings>
-        <option name="testRunner" value="GRADLE" />
-        <option name="distributionType" value="DEFAULT_WRAPPED" />
-        <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="modules">
-          <set>
-            <option value="$PROJECT_DIR$" />
-            <option value="$PROJECT_DIR$/app" />
-          </set>
-        </option>
-      </GradleProjectSettings>
-    </option>
-  </component>
-</project>

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -9,7 +9,7 @@
     android:sharedUserId="android.uid.system"
     <category android:name="android.intent.category.LAUNCHER" />
     -->
-
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
     <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
 

+ 2 - 8
app/src/main/java/com/xplora/xponboarding/Activity/BaseTimerActivity.java

@@ -10,10 +10,10 @@ public class BaseTimerActivity extends BaseActivity {
     protected void onTimerCallback(int type) {};
 
     protected void startTimer(int type, long count) {
-        if (mType != 0)
+        if (mType == type)
             return;
-        mType = type;
         stopTimer();
+        mType = type;
         mTimer = new Timer();
         mTimer.schedule(new TimerTask() {
             @Override
@@ -30,10 +30,4 @@ public class BaseTimerActivity extends BaseActivity {
         mTimer = null;
         mType = 0;
     }
-
-    @Override
-    protected void onPause() {
-        super.onPause();
-        stopTimer();
-    }
 }

+ 1 - 1
app/src/main/java/com/xplora/xponboarding/Activity/QRActivity.java

@@ -12,10 +12,10 @@ import android.widget.TextView;
 import androidx.annotation.RequiresApi;
 
 import com.xplora.xponboarding.Data.DataManager;
-import com.xplora.xponboarding.Data.ScreenOnUtils;
 import com.xplora.xponboarding.R;
 import com.xplora.xponboarding.Utils.Macros;
 import com.xplora.xponboarding.Utils.QRCodeUtil;
+import com.xplora.xponboarding.Utils.ScreenOnUtils;
 
 import java.util.Timer;
 import java.util.TimerTask;

+ 19 - 1
app/src/main/java/com/xplora/xponboarding/Activity/ShutdownActivity.java

@@ -1,5 +1,6 @@
 package com.xplora.xponboarding.Activity;
 
+import android.os.Build;
 import android.os.Bundle;
 import android.util.Log;
 import android.view.View;
@@ -25,7 +26,7 @@ public class ShutdownActivity extends BaseTimerActivity {
         super.onCreate(savedInstanceState);
         Log.d(TAG, "onCreate: ");
         setContentView(R.layout.activity_select);
-        ScreenOnUtils.addScreenOn(getWindow());
+        setLockScreenOn();
         isLockKey = true;
 
         initView();
@@ -54,9 +55,26 @@ public class ShutdownActivity extends BaseTimerActivity {
         });
     }
 
+    private void setLockScreenOn() {
+        // 替代 FLAG_TURN_SCREEN_ON 和 FLAG_SHOW_WHEN_LOCKED
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+            setShowWhenLocked(true);     // 锁屏时显示 activity
+            setTurnScreenOn(true);       // 唤醒屏幕
+        } else {
+            ScreenOnUtils.addScreenOn(getWindow());
+        }
+    }
+
     @Override
     protected void onTimerCallback(int type) {
         super.onTimerCallback(type);
         shutdown();
     }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        Log.d(TAG, "onResume: ");
+        ScreenOnUtils.addScreenOn(getWindow());
+    }
 }

+ 0 - 14
app/src/main/java/com/xplora/xponboarding/Data/ScreenOnUtils.java

@@ -1,14 +0,0 @@
-package com.xplora.xponboarding.Data;
-
-import android.view.Window;
-import android.view.WindowManager;
-
-public class ScreenOnUtils {
-    public static void addScreenOn(Window window) {
-        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-    }
-
-    public static void clearScreenOn(Window window) {
-        window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-    }
-}

+ 1 - 1
app/src/main/java/com/xplora/xponboarding/Utils/ScreenOnUtils.java

@@ -5,7 +5,7 @@ import android.view.WindowManager;
 
 public class ScreenOnUtils {
     public static void addScreenOn(Window window) {
-        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
     }
 
     public static void clearScreenOn(Window window) {