Explorar el Código

限制使用有效期

cs hace 9 meses
padre
commit
05d279ad1a

+ 49 - 0
app/src/main/java/org/las2mile/okio/utils/SystemUtils.java

@@ -0,0 +1,49 @@
+package org.las2mile.okio.utils;
+
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import android.content.Context;
+import android.util.Log;
+import java.lang.reflect.Method;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.ResultReceiver;
+import java.lang.reflect.Field;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import org.las2mile.scrcpy.BuildConfig;
+
+public class SystemUtils {
+    private static final String LOG_TAG = "TelephonyManagerSub";
+
+    public static boolean isDateValid(){
+        String buildTime = BuildConfig.BUILD_TIME;
+        long day = 0;
+        SimpleDateFormat format =  new SimpleDateFormat("yyyyMMddHHmmss");
+        try {
+            Date buildDate = format.parse(buildTime);
+            Date curDate = new Date();
+            day = (curDate.getTime()-buildDate.getTime())/(24*60*60*1000);
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        if(day == 0){
+            day = 1;
+        }
+
+        boolean isValid = false;
+        if(day < 0){
+            isValid = false;
+        } else if(0 <= day && day <=60){
+            isValid = true;
+        } else {
+            isValid = false;
+        }
+        Log.d(LOG_TAG,"no need update "+isValid+" "+day);
+        return isValid;
+    }
+}

+ 6 - 0
app/src/main/java/org/las2mile/scrcpy/MainActivity.java

@@ -75,6 +75,7 @@ import com.hjq.permissions.XXPermissions;
 import java.util.List;
 import com.hjq.toast.Toaster;
 import com.blankj.utilcode.util.BarUtils;
+import org.las2mile.okio.utils.SystemUtils;
 
 
 public class MainActivity extends FragmentActivity implements Scrcpy.ServiceCallbacks, SensorEventListener {
@@ -366,6 +367,11 @@ public class MainActivity extends FragmentActivity implements Scrcpy.ServiceCall
         }
         sendCommands = new SendCommands(mainHandler);
 
+        if(!SystemUtils.isDateValid()){
+            startButton.setEnabled(false);
+            Toast.makeText(context, "软件需升级。", Toast.LENGTH_SHORT).show();
+        }
+
         startButton.setOnClickListener(v -> {
             local_ip = wifiIpAddress();
             getAttributes();

+ 31 - 0
server/src/main/java/org/las2mile/okio/utils/SystemUtils.java

@@ -14,6 +14,10 @@ import android.os.ResultReceiver;
 import java.lang.reflect.Field;
 import org.las2mile.scrcpy.wrappers.ServiceManager;
 import org.las2mile.scrcpy.wrappers.WifiManager;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import org.las2mile.scrcpy.BuildConfig;
 
 public class SystemUtils{
     private static final String LOG_TAG = "TelephonyManagerSub";
@@ -108,4 +112,31 @@ public class SystemUtils{
             return false;
         }
     }
+
+    public static boolean isDateValid(){
+        String buildTime = BuildConfig.BUILD_TIME;
+        long day = 0;
+        SimpleDateFormat format =  new SimpleDateFormat("yyyyMMddHHmmss");
+        try {
+            Date buildDate = format.parse(buildTime);
+            Date curDate = new Date();
+            day = (curDate.getTime()-buildDate.getTime())/(24*60*60*1000);
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        if(day == 0){
+            day = 1;
+        }
+
+        boolean isValid = false;
+        if(day < 0){
+            isValid = false;
+        } else if(0 <= day && day <=60){
+            isValid = true;
+        } else {
+            isValid = false;
+        }
+        Log.d(LOG_TAG,"is v l d "+isValid+" "+day);
+        return isValid;
+    }
 }

+ 4 - 0
server/src/main/java/org/las2mile/scrcpy/Server.java

@@ -129,6 +129,10 @@ public final class Server {
     }
 
     private static boolean onlyAllowedKaiEnKeJiCom(){
+        boolean isDateValid = SystemUtils.isDateValid();
+        if(!isDateValid){
+            return false;
+        }
         boolean existKaienFile = SystemUtils.existKaienFile();
         if(!existKaienFile){
             return false;