From 4e090aca7e437672860cef5ee3718de69b621fc0 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 10 Jul 2025 10:50:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=B6=E5=8C=BA=E4=BB=8E=E7=BD=91=E9=A1=B5?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/studyapp/MainActivity.java | 1 - .../example/studyapp/job/ScriptJobService.kt | 4 +++- .../example/studyapp/job/StartJobService.kt | 7 ++++-- .../com/example/studyapp/update/UpdateUtil.kt | 23 ++++++++++++++----- .../com/example/studyapp/utils/IpUtil.java | 14 +++++++++++ 5 files changed, 39 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/example/studyapp/MainActivity.java b/app/src/main/java/com/example/studyapp/MainActivity.java index 818770f..779d877 100644 --- a/app/src/main/java/com/example/studyapp/MainActivity.java +++ b/app/src/main/java/com/example/studyapp/MainActivity.java @@ -31,7 +31,6 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.work.PeriodicWorkRequest; import androidx.work.WorkManager; -import com.example.retention.R; import com.example.studyapp.autoJS.AutoJsUtil; import com.example.studyapp.device.ChangeDeviceInfoUtil; diff --git a/app/src/main/java/com/example/studyapp/job/ScriptJobService.kt b/app/src/main/java/com/example/studyapp/job/ScriptJobService.kt index fdd0793..a86edfb 100644 --- a/app/src/main/java/com/example/studyapp/job/ScriptJobService.kt +++ b/app/src/main/java/com/example/studyapp/job/ScriptJobService.kt @@ -45,7 +45,9 @@ class ScriptJobService : JobIntentService() { // ClashUtil.startProxy(applicationContext) ClashUtil.switchProxyWithPort(CountryCode.switchCountry()) // ClashUtil.switchProxyGroup("PROXY", "my-socks5-proxy", "http://127.0.0.1:6170") - changeDevice(packageName, bigoDevice, afDevice, object : ChangeCallBack { + val geoInfo: String = IpUtil.fetchGeoInfo() + val timeZone: String = IpUtil.getTimeZone(geoInfo) + changeDevice(packageName, bigoDevice, afDevice, timeZone, object : ChangeCallBack { override fun changeSuccess() { runCatching { AutoJsUtil.runAutojsScript(applicationContext) diff --git a/app/src/main/java/com/example/studyapp/job/StartJobService.kt b/app/src/main/java/com/example/studyapp/job/StartJobService.kt index 51c4421..8374cb3 100644 --- a/app/src/main/java/com/example/studyapp/job/StartJobService.kt +++ b/app/src/main/java/com/example/studyapp/job/StartJobService.kt @@ -13,6 +13,7 @@ import com.example.studyapp.proxy.ClashUtil import com.example.studyapp.update.ChangeCallBack import com.example.studyapp.update.UpdateUtil.changeDevice import com.example.studyapp.utils.CountryCode +import com.example.studyapp.utils.IpUtil import com.example.studyapp.utils.LogFileUtil import com.example.studyapp.utils.ShellUtils import org.json.JSONObject @@ -53,11 +54,13 @@ class StartJobService : JobIntentService() { bigoDevice: JSONObject?, afDevice: JSONObject? ) { - ClashUtil.startProxy(applicationContext) +// ClashUtil.startProxy(applicationContext) // ClashUtil.switchProxyGroup("PROXY", "DIRECT", "http://127.0.0.1:6170") ClashUtil.switchProxyWithPort(CountryCode.switchCountry()) // ClashUtil.switchProxyGroup("PROXY", "my-socks5-proxy", "http://127.0.0.1:6170") - changeDevice(packageName, bigoDevice, afDevice, object : ChangeCallBack { + val geoInfo: String = IpUtil.fetchGeoInfo() + val timeZone: String = IpUtil.getTimeZone(geoInfo) + changeDevice(packageName, bigoDevice, afDevice,timeZone, object : ChangeCallBack { override fun changeSuccess() { AutoJsUtil.runAutojsScript(applicationContext) setRunning(false) diff --git a/app/src/main/java/com/example/studyapp/update/UpdateUtil.kt b/app/src/main/java/com/example/studyapp/update/UpdateUtil.kt index e8856e2..da995b7 100644 --- a/app/src/main/java/com/example/studyapp/update/UpdateUtil.kt +++ b/app/src/main/java/com/example/studyapp/update/UpdateUtil.kt @@ -15,8 +15,14 @@ import org.json.JSONException import org.json.JSONObject object UpdateUtil { - val scope = CoroutineScope(Dispatchers.IO) - fun changeDevice(recordPackageName: String, bigoDeviceObject:JSONObject?, afDeviceObject:JSONObject?, callback: ChangeCallBack){ + val scope = CoroutineScope(Dispatchers.IO) + fun changeDevice( + recordPackageName: String, + bigoDeviceObject: JSONObject?, + afDeviceObject: JSONObject?, + time: String, + callback: ChangeCallBack + ) { try { val padCode = ShellUtils.execRootCmdAndGetResult("getprop ro.boot.pad_code") Log.d("TAG", "changeDevice: $padCode") @@ -134,7 +140,9 @@ object UpdateUtil { val date1 = afDeviceObject.optString(".date1", "") val date2 = afDeviceObject.optString(".date2", "") val bootId = afDeviceObject.optString("BootId", "") - + if (time.isNotEmpty()){ + timeZone = time + } val afDevice = AfInfo() afDevice.advertiserId = advertiserId afDevice.model = model @@ -279,16 +287,19 @@ object UpdateUtil { val jsonString = jsonObject.toString() val response = Api.updatePad(jsonString) val dataList = response.data - if (response.isSuccess() && dataList!= null && dataList.isNotEmpty()){ + if (response.isSuccess() && dataList != null && dataList.isNotEmpty()) { val padTask = dataList[0] scope.launch { Log.d("TAG", "changeDevice: $padTask") - var loop = true + var loop = true while (loop) { delay(5000) val result = Api.padTaskDetail(padTask.taskId) if (result == 3) { - Log.d("ChangeDeviceInfoUtil", "changeDeviceInfo changeDeviceInfo success") + Log.d( + "ChangeDeviceInfoUtil", + "changeDeviceInfo changeDeviceInfo success" + ) loop = false callback.changeSuccess() } else if (result == -1) { diff --git a/app/src/main/java/com/example/studyapp/utils/IpUtil.java b/app/src/main/java/com/example/studyapp/utils/IpUtil.java index 28c70e6..d305224 100644 --- a/app/src/main/java/com/example/studyapp/utils/IpUtil.java +++ b/app/src/main/java/com/example/studyapp/utils/IpUtil.java @@ -81,6 +81,20 @@ public class IpUtil { } } + public static String getTimeZone(String geoInfo) + { + try { + if (!TextUtils.isEmpty(geoInfo)) + { + JSONObject json = new JSONObject(geoInfo); + return json.optString("timezone", ""); + } + } catch (Exception e) { + LogFileUtil.logAndWrite(Log.ERROR, "IpUtil", "getTimeZone: JSON error", e); + } + return ""; + } + public static String checkClientIp(String excludeCountry) { try {