From 52fa1061012ed00eeb85e850b1f285b84f9fc613 Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 6 Sep 2022 11:00:57 +0800 Subject: [PATCH] =?UTF-8?q?[CrashFix]=E4=BF=AE=E6=AD=A3=E5=B4=A9=E6=BA=83?= =?UTF-8?q?=20java.lang.RuntimeException:=20android.os.DeadSystemException?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../status/flow/gps/GpsImpl.kt | 14 +++++++++++--- .../status/flow/nets/NetsImpl.kt | 19 ++++++++++++++----- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt index c290ed65b0..f53bf35c5e 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt @@ -35,15 +35,23 @@ internal class GpsImpl(ctx: Context): IFlow(ctx) { } private val onClose = { - send(false, PermissionUtils.isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) + send(false, isGrandFineLocation()) } private val onOpen = { - send(true, PermissionUtils.isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) + send(true, isGrandFineLocation()) } + private fun isGrandFineLocation(): Boolean = try { + PermissionUtils.isGranted(Manifest.permission.ACCESS_FINE_LOCATION) + } catch (t: Throwable) { + t.printStackTrace() + false + } + + override fun onCreate() { - val isGranted = PermissionUtils.isGranted(Manifest.permission.ACCESS_FINE_LOCATION) + val isGranted = isGrandFineLocation() send(isLocationEnabled(), isGranted) if (!isGranted) { PermissionUtils.requestAccessFineLocation(object : SimpleCallback { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt index 0e15261740..0adb0bee7c 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt @@ -78,12 +78,21 @@ internal class NetsImpl(ctx: Context): IFlow(ctx) { private var loopCheckAndSendJob: Job? = null private fun checkAndSend() { - val connectionInfo = wifiMgr.connectionInfo - val enabled = isNetConnected() - val name = if (isLocationEnabled()) connectionInfo.ssid?.replace(Regex("[\\W]"), "") else "WI-FI" loopCheckAndSendJob?.safeCancel() - launch(Dispatchers.Default) { delay(1000); checkAndSend() }.also { loopCheckAndSendJob = it } - send(enabled, name) + launch(Dispatchers.Default) { + val connectionInfo = wifiMgr.connectionInfo + val enabled = isNetConnected() + val name = + try { + if (isLocationEnabled()) connectionInfo.ssid?.replace(Regex("[\\W]"), "") else "WI-FI" + } catch (t: Throwable) { + t.printStackTrace() + "WI-FI" + } + send(enabled, name) + delay(1000); + checkAndSend() + }.also { loopCheckAndSendJob = it } } private fun isLocationEnabled() =