Prechádzať zdrojové kódy

1.新增保活
2.小程序二维码的更新

JaycePC 9 mesiacov pred
rodič
commit
1256a5bd80

+ 2 - 1
HttpCoreLibrary/src/main/java/com/rc/httpcore/HttpConfig.kt

@@ -7,7 +7,8 @@ class HttpConfig {
         var API_BASE_URL = "http://172.16.0.65/api/"
         var API_BASE_IMG_URL = "http://172.16.0.65/api/"  //图片资源
 
-        var API_BASE_QC_URL = "http://lab.zjznai.com/labTest"  //二维码地址  用于打印出的二维码路径跳转到小程序
+//        var API_BASE_QC_URL = "http://lab.zjznai.com/labTest"  //二维码地址  用于打印出的二维码路径跳转到小程序
+        var API_BASE_QC_URL = "https://labcontrol.nwafu.edu.cn/api/"  //二维码地址  用于打印出的二维码路径跳转到小程序
 //        http://lab.zjznai.com/labAppTest?code=1760903781269671937&type=1   MSDS 路径生成
         //http://192.168.1.43/api?code=1760903781269671937&type=1   MSDS 路径生成
 

+ 1 - 1
app/build.gradle

@@ -73,7 +73,7 @@ android {
         variant.outputs.all {
             def buildType = variant.buildType.name
 //            def buildTime = new Date().format("yyyyMMddHHmm", TimeZone.getDefault())
-            outputFileName = "Chemical_Xibei_" + android.defaultConfig.versionName + ".apk"
+            outputFileName = "xn_huaxue_" + android.defaultConfig.versionName + ".apk"
         }
     }
 }

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

@@ -239,7 +239,6 @@
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
-                <category android:name="android.intent.category.HOME" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
@@ -277,6 +276,15 @@
                 android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
                 android:resource="@xml/device_filter" />
         </activity>
+
+        <receiver
+            android:name=".receiver.ProcessReceiver"
+            android:exported="true"
+            tools:ignore="ExportedReceiver">
+            <intent-filter>
+                <action android:name="XN_ACTION" />
+            </intent-filter>
+        </receiver>
     </application>
 
 </manifest>

+ 5 - 4
app/src/main/java/com/example/chemical/ChemicalApp.kt

@@ -2,18 +2,15 @@ package com.example.chemical
 
 import android.app.Application
 import android.content.Context
-
 import android.util.Log
 import androidx.multidex.MultiDex
 import com.blankj.utilcode.util.AppUtils
 import com.blankj.utilcode.util.CrashUtils
 import com.blankj.utilcode.util.FileUtils
 import com.blankj.utilcode.util.LogUtils
-import com.example.chemical.comm.Constants
 import com.rc.core.log.RcLog
-import com.rc.core.util.ApkController
-import com.rc.core.util.CrashHandler.initCrash
 import com.rc.core.util.ScreenAdapter
+import com.rc.httpcore.HttpConfig
 import com.rc.httpcore.apk.LabInfo
 import com.rc.httpcore.bean.ConfigBean
 import com.rc.httpcore.bean.UserData
@@ -39,6 +36,10 @@ class ChemicalApp : Application() {
 
     override fun onCreate() {
         super.onCreate()
+        if (AppUtils.isAppDebug()) {
+            HttpConfig.API_BASE_URL = "http://192.168.1.8/api/"
+            HttpConfig.API_BASE_IMG_URL = "http://192.168.1.8/api/"
+        }
         ScreenAdapter.initAppDensity(this)
 //        initCrash(this)
 //        initBugly()

+ 18 - 0
app/src/main/java/com/example/chemical/receiver/ProcessReceiver.java

@@ -0,0 +1,18 @@
+package com.example.chemical.receiver;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+import com.blankj.utilcode.util.AppUtils;
+import com.blankj.utilcode.util.LogUtils;
+
+public class ProcessReceiver extends BroadcastReceiver {
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        // 其他应用发送过来的信息
+        if (!AppUtils.getAppPackageName().equals(intent.getPackage())) {
+            LogUtils.d(intent, intent.getAction(), intent.getBooleanExtra("isDebug", false));
+        }
+    }
+}

+ 19 - 0
app/src/main/java/com/example/chemical/receiver/TimeTickReceiver.java

@@ -0,0 +1,19 @@
+package com.example.chemical.receiver;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+import com.example.chemical.utils.Tool;
+
+
+public class TimeTickReceiver extends BroadcastReceiver {
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        // 保活用
+        Intent newIntent = new Intent("XN_ACTION");
+        intent.putExtra("heartbeat", "heartbeat");
+        context.sendBroadcast(newIntent);
+        Tool.INSTANCE.startTaskService();
+    }
+}

+ 6 - 0
app/src/main/java/com/example/chemical/ui/MainActivity.kt

@@ -24,6 +24,7 @@ import com.bumptech.glide.request.RequestOptions
 import com.example.chemical.ChemicalApp
 import com.example.chemical.R
 import com.example.chemical.databinding.ActivityMainBinding
+import com.example.chemical.receiver.TimeTickReceiver
 import com.example.chemical.receiver.UsbReceiver
 import com.example.chemical.ui.adapter.CabinetAdapter
 import com.example.chemical.ui.discard.LedgerActivity
@@ -117,6 +118,11 @@ class MainActivity : RcBaseActivity<ActivityMainBinding>() {
     //必须在创建时注册信息
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
+
+        // 监听分钟广播
+        registerReceiver(TimeTickReceiver(), IntentFilter(Intent.ACTION_TIME_TICK))
+
+
 //        hPrints = AutoReplyPrint.INSTANCE.CP_Port_OpenUsb("VID:0x0FE6,PID:0x811E", 1)
         //注册广播
 //        EventBus.getDefault().register(this)

+ 1 - 0
app/src/main/java/com/example/chemical/ui/SettingActivity.kt

@@ -5,6 +5,7 @@ import android.content.Intent
 import android.os.Bundle
 import android.provider.Settings
 import android.view.LayoutInflater
+import com.blankj.utilcode.util.GsonUtils
 import com.example.chemical.comm.Constants
 import com.example.chemical.databinding.ActivitySettingBinding
 import com.example.chemical.utils.SharedPreferencesHelper

+ 3 - 1
app/src/main/java/com/example/chemical/ui/login/ScanLoginActivity.kt

@@ -62,6 +62,7 @@ class ScanLoginActivity : BaseCountDownActivity<ActivityScanLoginBinding>() {
             "1" -> {
                 viewBinding.linType.visibility = View.GONE
             }
+
             "6" -> {
                 viewBinding.tvFace.visibility = View.GONE
             }
@@ -118,8 +119,9 @@ class ScanLoginActivity : BaseCountDownActivity<ActivityScanLoginBinding>() {
         val toUpperCase = mLztek!!.ethMac.toUpperCase()
         mDeviceNum = toUpperCase.replace(":", "")
         RcLog.info("=========当前设备得mac地址$mDeviceNum")
+
         val text =
-            "https://lab.zjznai.com/labTest?code=${currentDateTime}&subId=${ChemicalApp.subjectId!!}&type=11&macId=${mDeviceNum}" // 要生成二维码的文本内容
+            HttpConfig.API_BASE_QC_URL + "?code=${currentDateTime}&subId=${ChemicalApp.subjectId!!}&type=11&macId=${mDeviceNum}" // 要生成二维码的文本内容
         val width = 130 // 二维码宽度
         val height = 130 // 二维码高度
         loadQRCodeIntoImageView(text, width, height, viewBinding.img)

+ 5 - 2
app/src/main/java/com/example/chemical/ui/verify/ScanCodeTwoActivity.kt

@@ -86,10 +86,10 @@ class ScanCodeTwoActivity : BaseCountDownActivity<ActivityScanCodeTwoBinding>()
         Thread.sleep(10)
         currentDateTimeTwo = TimesUils.getCurrentDateTime()
         var cont =
-            "https://lab.zjznai.com/labTest?doorId=${mDoorId}&subId=${ChemicalApp.subjectId!!}&type=12&macId=${mDeviceNum}&code=${currentDateTimeOne}" // 要生成二维码的文本内容
+            HttpConfig.API_BASE_QC_URL + "?doorId=${mDoorId}&subId=${ChemicalApp.subjectId!!}&type=12&macId=${mDeviceNum}&code=${currentDateTimeOne}" // 要生成二维码的文本内容
         loadQRCodeIntoImageView(cont, 100, 100, viewBinding.imgOne)
         var tow =
-            "https://lab.zjznai.com/labTest?doorId=${mDoorId}&subId=${ChemicalApp.subjectId!!}&type=12&macId=${mDeviceNum}&code=${currentDateTimeTwo}" // 要生成二维码的文本内容
+            HttpConfig.API_BASE_QC_URL + "?doorId=${mDoorId}&subId=${ChemicalApp.subjectId!!}&type=12&macId=${mDeviceNum}&code=${currentDateTimeTwo}" // 要生成二维码的文本内容
         loadQRCodeIntoImageView(tow, 100, 100, viewBinding.imgTwo)
         val map = mutableMapOf<String, Any>()
         //跳转扫码
@@ -307,6 +307,7 @@ class ScanCodeTwoActivity : BaseCountDownActivity<ActivityScanCodeTwoBinding>()
                                 }
                             }
                         }
+
                         1 -> { //归还业务 领用  标签管理
                             if (count == 1) {
                                 if (data.userId == ChemicalApp.userData!!.userId) {
@@ -348,6 +349,7 @@ class ScanCodeTwoActivity : BaseCountDownActivity<ActivityScanCodeTwoBinding>()
                                 }
                             }
                         }
+
                         2 -> {//待入库
                             if (count == 1) {
                                 if (data.userId == ChemicalApp.userData!!.userId) {
@@ -578,6 +580,7 @@ class ScanCodeTwoActivity : BaseCountDownActivity<ActivityScanCodeTwoBinding>()
                     throwable.message!!
                 }
             }
+
             is SocketTimeoutException -> "请求超时,请稍后重试"
             is ConnectException -> "无法连接服务器,请检查网络"
             is HttpException -> "服务器繁忙,请稍后重试"

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 614 - 585
app/src/main/java/com/example/chemical/ui/verify/TwoVerificationActivity.kt


+ 16 - 1
app/src/main/java/com/example/chemical/ui/warehousing/WarehousingActivity.kt

@@ -12,6 +12,7 @@ import android.widget.Toast
 import androidx.core.content.ContextCompat
 import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.LinearLayoutManager
+import com.blankj.utilcode.util.LogUtils
 import com.bumptech.glide.Glide
 import com.bumptech.glide.load.engine.DiskCacheStrategy
 import com.bumptech.glide.request.RequestOptions
@@ -222,6 +223,7 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
 
 
                             }
+
                             "3" -> {//扫码
                                 map["mVerTyps"] = 3
 
@@ -1064,13 +1066,16 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
             1 -> {
                 viewBinding.one.visibility = View.VISIBLE
             }
+
             2 -> {
                 viewBinding.two.visibility = View.VISIBLE
             }
+
             3 -> {
                 viewBinding.two.visibility = View.VISIBLE
                 viewBinding.three.visibility = View.VISIBLE
             }
+
             else -> {
                 viewBinding.two.visibility = View.VISIBLE
                 viewBinding.three.visibility = View.VISIBLE
@@ -1093,11 +1098,13 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
                     viewBinding.many.visibility = View.GONE
                     viewBinding.drop.visibility = View.GONE
                 }
+
                 2 -> {
                     viewBinding.three.visibility = View.GONE
                     viewBinding.many.visibility = View.GONE
                     viewBinding.drop.visibility = View.GONE
                 }
+
                 3 -> {
                     viewBinding.many.visibility = View.GONE
                     viewBinding.drop.visibility = View.GONE
@@ -1118,11 +1125,13 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
                     viewBinding.many.visibility = View.GONE
                     viewBinding.drop.visibility = View.GONE
                 }
+
                 2 -> {
                     viewBinding.three.visibility = View.GONE
                     viewBinding.many.visibility = View.GONE
                     viewBinding.drop.visibility = View.GONE
                 }
+
                 3 -> {
                     viewBinding.many.visibility = View.GONE
                     viewBinding.drop.visibility = View.GONE
@@ -1152,6 +1161,7 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
                     viewBinding.two.setBackgroundResource(R.drawable.bg_sou_suo_two_page)
                     viewBinding.three.setBackgroundResource(R.drawable.bg_sou_suo_two_page)
                 }
+
                 2 -> {
 //                    viewBinding.two.visibility = View.VISIBLE
                     viewBinding.one.setTextColor(
@@ -1176,6 +1186,7 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
                     viewBinding.two.setBackgroundResource(R.drawable.bg_sou_suo_page)
                     viewBinding.three.setBackgroundResource(R.drawable.bg_sou_suo_two_page)
                 }
+
                 3 -> {
 //                    viewBinding.three.visibility = View.VISIBLE
                     viewBinding.one.setTextColor(
@@ -1228,6 +1239,7 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
                     viewBinding.two.setBackgroundResource(R.drawable.bg_sou_suo_two_page)
                     viewBinding.three.setBackgroundResource(R.drawable.bg_sou_suo_two_page)
                 }
+
                 2 -> {
                     viewBinding.one.setTextColor(
                         ContextCompat.getColor(
@@ -1251,6 +1263,7 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
                     viewBinding.two.setBackgroundResource(R.drawable.bg_sou_suo_page)
                     viewBinding.three.setBackgroundResource(R.drawable.bg_sou_suo_two_page)
                 }
+
                 3 -> {
                     viewBinding.one.setTextColor(
                         ContextCompat.getColor(
@@ -1274,6 +1287,7 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
                     viewBinding.two.setBackgroundResource(R.drawable.bg_sou_suo_two_page)
                     viewBinding.three.setBackgroundResource(R.drawable.bg_sou_suo_page)
                 }
+
                 else -> {
                     viewBinding.three.text = "$current"
                     if (pages == current) {
@@ -1540,7 +1554,7 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
     //查询开锁信息
     private fun getLocks() {
         mCabinetLockVoList!!.forEachIndexed { index, fruit ->
-            if (fruit.isOk == false && fruit.unlockingMethod == 2) {
+            if (!fruit.isOk && fruit.unlockingMethod == 2) {
                 getLocksDate(index, fruit.lockNum)
             }
         }
@@ -1583,6 +1597,7 @@ class WarehousingActivity : BaseCountDownActivity<ActivityWarehousingBinding>()
                     throwable.message!!
                 }
             }
+
             is SocketTimeoutException -> "请求超时,请稍后重试"
             is ConnectException -> "无法连接服务器,请检查网络"
             is HttpException -> "服务器繁忙,请稍后重试"

+ 96 - 0
app/src/main/java/com/example/chemical/utils/Tool.java

@@ -0,0 +1,96 @@
+package com.example.chemical.utils;
+
+import android.net.Uri;
+import android.util.Log;
+
+import com.blankj.utilcode.util.AppUtils;
+import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.SPUtils;
+import com.blankj.utilcode.util.ShellUtils;
+import com.blankj.utilcode.util.Utils;
+import com.lztek.toolkit.Lztek;
+
+import java.util.Locale;
+
+import okhttp3.HttpUrl;
+
+public enum Tool {
+    INSTANCE;
+    private Lztek lztek;
+
+    private Tool() {
+        lztek = Lztek.create(Utils.getApp());
+    }
+
+    public void cmd(String cmd) {
+        LogUtils.d(cmd);
+        lztek.suExec(cmd);
+    }
+
+    public void reStartApp() {
+        exitApp();
+        cmd("monkey -p " + AppUtils.getAppPackageName() + " -c android.intent.category.LAUNCHER 1");
+    }
+
+    public void openFileBrowser() {
+        openApp("display.interactive.filebrowser");
+    }
+
+    public void exitApp() {
+        cmd("am force-stop " + AppUtils.getAppPackageName());
+    }
+
+    public void openSetting() {
+        openApp("display.interactive.hsetting");
+    }
+
+    public void openApp(String packageName) {
+        cmd("monkey -p " + packageName + " -c android.intent.category.LAUNCHER 1");
+    }
+
+    public void openAdb() {
+        cmd("setprop persist.internet_adb_enable 1");
+    }
+
+    public ShellUtils.CommandResult stopApp(String packageName) {
+        return ShellUtils.execCmd("am force-stop " + packageName, true);
+    }
+
+    public void setLauncher() {
+        cmd("pm set-home-activity " + AppUtils.getAppPackageName());
+    }
+
+    public void startMasterApp() {
+        openApp(SPUtils.getInstance().getString("masterApp", "com.zhong.che"));
+    }
+
+    public void startTaskService() {
+        cmd("am startservice -n xn.huaxue.update/xn.huaxue.update.service.TaskService");
+    }
+
+    public String getSerialNumber() {
+        String mac = lztek.getEthMac().toLowerCase(Locale.getDefault());
+        return mac.replace(":", "");
+    }
+
+    public HttpUrl getBaseUrl() {
+        if (AppUtils.isAppDebug()) {
+            return HttpUrl.get("http://192.168.1.8/api/");
+        } else {
+            return HttpUrl.get("http://172.16.0.65/api/");
+        }
+    }
+
+    public String checkUrl(String url) {
+        try {
+            String uriStr = url;
+            if (!url.matches("https?://.*") && !url.matches("http?://.*")) {
+                uriStr = Uri.parse(getBaseUrl() + url).toString();
+            }
+            return uriStr;
+        } catch (Exception e) {
+            LogUtils.e(Log.getStackTraceString(e));
+            return url;
+        }
+    }
+}

+ 1 - 1
app/src/main/res/layout/activity_setting.xml

@@ -105,7 +105,7 @@
             android:layout_alignParentRight="true"
             android:background="@null"
             android:maxLines="1"
-            android:text="https://lab.zjznai.com/labTest" />
+            android:text="https://labcontrol.nwafu.edu.cn/api/" />
 
     </RelativeLayout>
 

+ 1 - 1
config/config.gradle

@@ -10,7 +10,7 @@ ext {
             targetSdkVersion : 28,
             applicationId    : "com.zhong.che",
             versionCode      : 20,
-            versionName      : "1.25"
+            versionName      : "1.29"
     ]
 
     test = [