From e9bfb9eca4d9db104a7101d116f5d2978c534764 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Wed, 22 Nov 2023 21:16:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E6=A8=A1=E6=9D=BF=E5=8F=AF=E7=94=A8=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=20`{{=E5=AE=9A=E4=BD=8D=E4=BF=A1=E6=81=AF}}`=EF=BC=88=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E7=B3=BB=E7=BB=9F=EF=BC=9A`{{LOCATION}}`=EF=BC=89=20#?= =?UTF-8?q?341=20#343?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sms/forwarder/fragment/ServerFragment.kt | 23 +++++++++++++++++++ .../forwarder/service/ForegroundService.kt | 5 +++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt index e92cc0cf..30928d50 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt @@ -2,6 +2,7 @@ package com.idormy.sms.forwarder.fragment import android.annotation.SuppressLint import android.content.Intent +import android.os.Build import android.os.Environment import android.os.Handler import android.os.Looper @@ -20,6 +21,7 @@ import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.core.BaseFragment import com.idormy.sms.forwarder.databinding.FragmentServerBinding +import com.idormy.sms.forwarder.service.ForegroundService import com.idormy.sms.forwarder.service.HttpService import com.idormy.sms.forwarder.utils.* import com.xuexiang.xaop.annotation.SingleClick @@ -88,15 +90,18 @@ class ServerFragment : BaseFragment(), View.OnClickListe binding!!.layoutSignKey.visibility = View.VISIBLE binding!!.layoutTimeTolerance.visibility = View.VISIBLE } + 2 -> { safetyMeasuresId = R.id.rb_safety_measures_rsa binding!!.layoutPrivateKey.visibility = View.VISIBLE binding!!.layoutPublicKey.visibility = View.VISIBLE } + 3 -> { safetyMeasuresId = R.id.rb_safety_measures_sm4 binding!!.layoutSm4Key.visibility = View.VISIBLE } + else -> {} } binding!!.rgSafetyMeasures.check(safetyMeasuresId) @@ -113,15 +118,18 @@ class ServerFragment : BaseFragment(), View.OnClickListe binding!!.layoutSignKey.visibility = View.VISIBLE binding!!.layoutTimeTolerance.visibility = View.VISIBLE } + R.id.rb_safety_measures_rsa -> { safetyMeasures = 2 binding!!.layoutPrivateKey.visibility = View.VISIBLE binding!!.layoutPublicKey.visibility = View.VISIBLE } + R.id.rb_safety_measures_sm4 -> { safetyMeasures = 3 binding!!.layoutSm4Key.visibility = View.VISIBLE } + else -> {} } HttpServerUtils.safetyMeasures = safetyMeasures @@ -242,6 +250,14 @@ class ServerFragment : BaseFragment(), View.OnClickListe } refreshButtonText() } + //重启前台服务,启动/停止定位服务 + val serviceIntent = Intent(requireContext(), ForegroundService::class.java) + serviceIntent.action = "START" + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + requireContext().startForegroundService(serviceIntent) + } else { + requireContext().startService(serviceIntent) + } } } @@ -265,6 +281,7 @@ class ServerFragment : BaseFragment(), View.OnClickListe } refreshButtonText() } + R.id.btn_sm4_key -> { val key = ConvertTools.bytes2HexString(SM4Crypt.createSM4Key()) println("SM4密钥:$key") @@ -272,6 +289,7 @@ class ServerFragment : BaseFragment(), View.OnClickListe binding!!.etSm4Key.setText(key) XToastUtils.info(getString(R.string.sign_key_tips)) } + R.id.btn_generate_key -> { val generator = KeyPairGenerator.getInstance("RSA") //密钥生成器 generator.initialize(2048) @@ -291,16 +309,19 @@ class ServerFragment : BaseFragment(), View.OnClickListe ClipboardUtils.copyText(publicKeyEncoded) XToastUtils.info(getString(R.string.rsa_key_tips)) } + R.id.btn_copy_public_key -> { ClipboardUtils.copyText(binding!!.etPublicKey.text) XToastUtils.info(getString(R.string.rsa_key_tips2)) } + R.id.btn_sign_key -> { val sign = RandomUtils.getRandomNumbersAndLetters(16) ClipboardUtils.copyText(sign) binding!!.etSignKey.setText(sign) XToastUtils.info(getString(R.string.sign_key_tips)) } + R.id.tv_server_tips, R.id.iv_copy -> { var hostAddress: String = if (inetAddress != null) "${inetAddress?.hostAddress}" else "127.0.0.1" hostAddress = if (hostAddress.indexOf(':', 0, false) > 0) "[${hostAddress}]" else hostAddress @@ -308,6 +329,7 @@ class ServerFragment : BaseFragment(), View.OnClickListe ClipboardUtils.copyText(url) XToastUtils.info(String.format(getString(R.string.copied_to_clipboard), url)) } + R.id.btn_path_picker -> { // 申请储存权限 XXPermissions.with(this) @@ -352,6 +374,7 @@ class ServerFragment : BaseFragment(), View.OnClickListe } }) } + else -> {} } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/service/ForegroundService.kt b/app/src/main/java/com/idormy/sms/forwarder/service/ForegroundService.kt index 1710f9d5..f62e0703 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/service/ForegroundService.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/service/ForegroundService.kt @@ -226,6 +226,9 @@ class ForegroundService : Service() { locationClient.stopLocation() } locationClient.startLocation() + } else if ((!SettingUtils.enableLocationTag && !HttpServerUtils.enableApiLocation) && locationClient.isStarted()) { + Log.d(TAG, "stopLocation") + locationClient.stopLocation() } isRunning = true @@ -239,7 +242,7 @@ class ForegroundService : Service() { private fun stopForegroundService() { try { //如果已经开始定位,则先停止定位 - if (HttpServerUtils.enableApiLocation && locationClient.isStarted()) { + if ((SettingUtils.enableLocationTag || HttpServerUtils.enableApiLocation) && locationClient.isStarted()) { locationClient.stopLocation() }