ソースを参照

志合版本门口机隐藏虚拟导航栏,修改语言设置无效问题,修改设置权限无法开启问题等

weizhengliang 2 年 前
コミット
fea19548af

+ 6 - 1
android_door/build.gradle

@@ -73,7 +73,7 @@ android {
 }
 
 dependencies {
-    compile fileTree(dir: 'libs', include: ['*.jar'])
+    //compile fileTree(dir: 'libs', include: ['*.jar'])
     /**
      * 单元测试
      */
@@ -111,6 +111,11 @@ dependencies {
 
     //rk3288接口
     compile files('libs/rk3288_api.jar')
+
+    if (app_device_type == "mk_h10_w_a133_1_chile") {
+        //志合sdk
+        compile files('libs/zhylapi-20230324.jar')
+    }
 }
 
 /**

+ 13 - 0
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/activity/AppUpdateActivity.kt

@@ -2,6 +2,7 @@ package com.wdkl.app.ncs.callingdoor.activity
 
 import android.content.Intent
 import android.os.Build
+import android.os.Bundle
 import android.text.TextUtils
 import android.util.Log
 import com.enation.javashop.android.jrouter.external.annotation.Router
@@ -11,7 +12,9 @@ import com.wdkl.app.ncs.callingdoor.R
 import com.wdkl.app.ncs.callingdoor.databinding.UpdateLayBinding
 import com.wdkl.app.ncs.callingdoor.helper.AppUpdateHelper
 import com.wdkl.app.ncs.callingdoor.helper.HttpHelper
+import com.wdkl.app.ncs.callingdoor.helper.LocaleMangerUtils
 import com.wdkl.app.ncs.callingdoor.launch.CallingdoorLaunch
+import com.wdkl.app.ncs.callingdoor.settings.SettingConfig
 import com.wdkl.ncs.android.lib.base.BaseActivity
 import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.lib.vo.filter
@@ -28,6 +31,16 @@ class AppUpdateActivity :BaseActivity<AppUpdatePresenter, UpdateLayBinding>(), A
 
     private val urlManager = UrlManager.build()
 
+    override fun onCreate(savedInstanceState: Bundle?) {
+        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
+            //切换语言
+            val languageId: Int = SettingConfig.getLanguageId(this)
+            LocaleMangerUtils.setApplicationLanguageByIndex(this, languageId)
+        }
+
+        super.onCreate(savedInstanceState)
+    }
+
     override fun getLayId(): Int {
         return R.layout.update_lay
     }

+ 31 - 6
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/activity/CallingdoorActivity.kt

@@ -4,7 +4,9 @@ import android.app.zhyl.ZhylManager
 import android.content.*
 import android.graphics.Color
 import android.net.ConnectivityManager
+import android.net.Uri
 import android.os.*
+import android.provider.Settings
 import android.text.TextUtils
 import android.util.Log
 import android.view.Gravity
@@ -173,6 +175,16 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         black_view.visibility = View.VISIBLE
     }
 
+    override fun onCreate(savedInstanceState: Bundle?) {
+        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
+            //切换语言
+            val languageId: Int = SettingConfig.getLanguageId(this)
+            LocaleMangerUtils.setApplicationLanguageByIndex(this, languageId)
+        }
+
+        super.onCreate(savedInstanceState)
+    }
+
     override fun getLayId(): Int {
         if ("rk3288".equals(Build.MODEL)) {
             return R.layout.callingdoor_main_lay_rk3288
@@ -188,6 +200,19 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
     override fun init() {
         //志合A133平台sdk
         zhylManager = ZhylManager.getInstance(BaseApplication.appContext)
+        //设置开机自启动
+        zhylManager.sys_setSystemBootApp("com.wdkl.app.ncs.callingdoor/com.wdkl.ncs.android.component.welcome.activity.WelcomeActivity")
+        //隐藏虚拟导航栏
+        zhylManager.disp_setNavigationBar(false)
+
+        //申请悬浮窗权限
+        /*if (!Settings.canDrawOverlays(this)) {
+            val intent = Intent(
+                Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
+                Uri.parse("package:$packageName")
+            )
+            startActivityForResult(intent, 10)
+        }*/
 
         //rk3288使用序列号注册,其他使用mac地址注册
         if ("rk3288".equals(Build.MODEL)) {
@@ -451,7 +476,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                         showMsgMain("restart...")
                         handler.postDelayed({
                             if (!cancelRestart) {
-                                AppUpdateHelper.restartApp(activity)
+                                AppUpdateHelper.restartApp()
                             }
                         }, 10000)
                     }
@@ -916,7 +941,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
             if (needReboot) {
                 handler.postDelayed({
-                    AppUpdateHelper.restartApp(activity)
+                    AppUpdateHelper.restartApp()
                 }, 10000)
             }
         }
@@ -1386,7 +1411,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                             //initDevice()
                             //收到重启app指令,若当前处于正常待机状态则直接重启app,否则等待通话结束再重启
                             if (Constant.CALL_STATE == Constant.CALL_STANDBY) {
-                                AppUpdateHelper.restartApp(activity)
+                                AppUpdateHelper.restartApp()
                             } else {
                                 Constant.LATER_RESTART = true
                             }
@@ -1400,7 +1425,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                                 CommonUtils.setUrl(activity, serverIp)
                                 CommonUtils.setUrlPort(activity, serverPort)
                                 AppTool.Time.delay(2000) {
-                                    AppUpdateHelper.restartApp(activity)
+                                    AppUpdateHelper.restartApp()
                                 }
                             }
                         } else if (tcpModel.action == TcpAction.DeviceAction.OPEN_DEBUG) {
@@ -1460,7 +1485,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
             }
 
             Constant.EVENT_RESTART_APP -> {
-                AppUpdateHelper.restartApp(activity)
+                AppUpdateHelper.restartApp()
             }
 
             Constant.EVENT_EXIT_TEST -> {
@@ -1744,7 +1769,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                     checkHandleCall()
 
                     if (Constant.LATER_RESTART && Constant.CALL_STATE == Constant.CALL_STANDBY) {
-                        AppUpdateHelper.restartApp(activity)
+                        AppUpdateHelper.restartApp()
                     }
                 } else if (TextUtils.isEmpty(Constant.TCP_SERVER_URL)) {
                     //还未连接tcp服务器

+ 5 - 0
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/fragment/MainFragment.kt

@@ -1,5 +1,6 @@
 package com.wdkl.app.ncs.callingdoor.fragment
 
+import android.app.zhyl.ZhylManager
 import android.os.Build
 import android.text.TextUtils
 import androidx.recyclerview.widget.DefaultItemAnimator
@@ -12,6 +13,7 @@ import com.wdkl.app.ncs.callingdoor.helper.DoorLightHelper
 import com.wdkl.app.ncs.callingdoor.helper.Utils
 import com.wdkl.app.ncs.callingdoor.launch.CallingdoorLaunch
 import com.wdkl.app.ncs.callingdoor.settings.SettingConfig
+import com.wdkl.ncs.android.lib.base.BaseApplication
 import com.wdkl.ncs.android.lib.base.BaseFragment
 import com.wdkl.ncs.android.lib.utils.errorLog
 import com.wdkl.ncs.android.lib.utils.showMessage
@@ -56,6 +58,9 @@ class MainFragment: BaseFragment<MainFragmentPresenter, MainViewLayoutBinding>()
         rv_bed_view.adapter = roomAdpter
 
         updateInfo()
+
+        //隐藏虚拟导航栏
+        ZhylManager.getInstance(BaseApplication.appContext).disp_setNavigationBar(false)
     }
 
     override fun bindEvent() {

+ 22 - 1
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/fragment/QrCodeFragment.kt

@@ -1,5 +1,6 @@
 package com.wdkl.app.ncs.callingdoor.fragment
 
+import android.app.zhyl.ZhylManager
 import android.graphics.BitmapFactory
 import android.os.Build
 import android.util.Log
@@ -30,6 +31,9 @@ class QrCodeFragment : BaseFragment<QrCodeFragmentPresenter, QrCodeLayBinding>()
 
     val QR_CODE_PATH = "http://m.wdklian.com/care/apk/care.user?type=NCS_DEVICE"
 
+    private var clickTime: Long = 0
+    private var clickTimes: Int = 1
+
     override fun getLayId(): Int {
         return R.layout.qr_code_lay
     }
@@ -94,7 +98,7 @@ class QrCodeFragment : BaseFragment<QrCodeFragmentPresenter, QrCodeLayBinding>()
 
         tv_btn_reboot.setOnClickListener {
             (activity as CallingdoorActivity).cancelRestart()
-            AppUpdateHelper.reboot(context)
+            AppUpdateHelper.restartApp()
         }
 
         tv_btn_server_config.setOnClickListener {
@@ -109,6 +113,23 @@ class QrCodeFragment : BaseFragment<QrCodeFragmentPresenter, QrCodeLayBinding>()
                 (activity as CallingdoorActivity).startTestMode()
             }
         }
+
+        view_qr_code.setOnClickListener {
+            val time = System.currentTimeMillis()
+            if (time - clickTime < 1500) {
+                clickTimes++
+            } else {
+                clickTimes = 1
+            }
+
+            if (clickTimes > 8) {
+                showMessage("show navbar")
+                //显示虚拟导航栏
+                ZhylManager.getInstance(BaseApplication.appContext).disp_setNavigationBar(true)
+                clickTimes = 1
+            }
+            clickTime = time
+        }
     }
 
     private fun showQRCodeImg(id: Int) {

+ 3 - 0
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/fragment/TestFragment.kt

@@ -2,6 +2,7 @@ package com.wdkl.app.ncs.callingdoor.fragment
 
 import android.hardware.Camera
 import android.text.TextUtils
+import android.text.method.ScrollingMovementMethod
 import android.view.SurfaceHolder
 import android.view.View
 import com.enation.javashop.net.engine.model.NetState
@@ -46,6 +47,8 @@ class TestFragment : BaseFragment<QrCodeFragmentPresenter, TestFragmentLayBindin
         RecordHelper.getInstance().init()
         //SoundPoolManager.getInstance().playSound(4, 1.0f, 1.0f, 0)
 
+        tv_test_info.movementMethod = ScrollingMovementMethod.getInstance()
+
         startCameraPreview()
     }
 

+ 25 - 4
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/helper/AppUpdateHelper.java

@@ -1,7 +1,9 @@
 package com.wdkl.app.ncs.callingdoor.helper;
 
+import android.annotation.SuppressLint;
 import android.app.AlarmManager;
 import android.app.PendingIntent;
+import android.app.zhyl.ZhylManager;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
@@ -15,6 +17,7 @@ import android.util.Log;
 import androidx.core.content.FileProvider;
 
 import com.wdkl.ncs.android.component.welcome.activity.WelcomeActivity;
+import com.wdkl.ncs.android.lib.base.BaseApplication;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -209,7 +212,7 @@ public class AppUpdateHelper {
 
     public static void reboot(Context context) {
         try {
-            Intent intent = new Intent(Intent.ACTION_REBOOT);
+            /*Intent intent = new Intent(Intent.ACTION_REBOOT);
             intent.putExtra("nowait", 1);
             intent.putExtra("interval", 1);
             intent.putExtra("window", 0);
@@ -217,16 +220,18 @@ public class AppUpdateHelper {
 
             if ("rk3128".equals(Build.MODEL)) {
                 SerialPortHelper.resetDevice();
-            }
+            }*/
+
+            ZhylManager.getInstance(BaseApplication.appContext).sys_setReboot();
         } catch (Exception e) {
             e.printStackTrace();
         }
 
     }
 
-    public static void restartApp(Context context) {
+    public static void restartApp() {
         //重新启动app
-        Intent mStartActivity = new Intent(context.getApplicationContext(), WelcomeActivity.class);
+        /*Intent mStartActivity = new Intent(context.getApplicationContext(), WelcomeActivity.class);
         mStartActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
         int mPendingIntentId = 123456;
         PendingIntent mPendingIntent = PendingIntent.getActivity(context.getApplicationContext(), mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);
@@ -234,6 +239,22 @@ public class AppUpdateHelper {
         mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1500, mPendingIntent);
 
         android.os.Process.killProcess(android.os.Process.myPid());
+        System.exit(0);*/
+
+
+        try {
+            Log.i("AppUtil", "restartApp ======================");
+            Intent intent = new Intent(BaseApplication.appContext, WelcomeActivity.class);
+            @SuppressLint("WrongConstant") PendingIntent mPendingIntent = PendingIntent.getActivity(
+                    BaseApplication.appContext, 0, intent,
+                    Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+            AlarmManager mgr = (AlarmManager) BaseApplication.appContext.getSystemService(Context.ALARM_SERVICE);
+            mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1500, mPendingIntent);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        android.os.Process.killProcess(android.os.Process.myPid());
         System.exit(0);
     }
 

+ 2 - 2
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/helper/LanguageSetDialogHelper.java

@@ -100,7 +100,7 @@ public class LanguageSetDialogHelper {
                         new Handler().postDelayed(new Runnable() {
                             @Override
                             public void run() {
-                                AppUpdateHelper.restartApp(activity);
+                                AppUpdateHelper.restartApp();
                             }
                         }, 3000);
                     }
@@ -109,7 +109,7 @@ public class LanguageSetDialogHelper {
                     new Handler().postDelayed(new Runnable() {
                         @Override
                         public void run() {
-                            AppUpdateHelper.restartApp(activity);
+                            AppUpdateHelper.restartApp();
                         }
                     }, 3000);
                 }

+ 4 - 0
android_door/src/main/h10_a133_chile/res/layout/test_fragment_lay.xml

@@ -57,6 +57,10 @@
         android:id="@+id/tv_test_info"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:background="#F3F9FE"
+        android:scrollbars="vertical"
+        android:fadeScrollbars="true"
+        android:lineSpacingExtra="12dp"
         android:textSize="20sp"/>
 
 </LinearLayout>

+ 5 - 0
app/src/main/AndroidManifest.xml

@@ -18,6 +18,11 @@
     <uses-permission android:name="android.permission.CAMERA"/>
     <uses-permission android:name="android.permission.BLUETOOTH"/>
     <uses-permission android:name="android.permission.RECORD_AUDIO"/>
+    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
+
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+    <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
 
     <uses-permission android:name ="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

+ 5 - 0
app/src/main/sharedUserId/AndroidManifest.xml

@@ -19,6 +19,11 @@
     <uses-permission android:name="android.permission.CAMERA"/>
     <uses-permission android:name="android.permission.BLUETOOTH"/>
     <uses-permission android:name="android.permission.RECORD_AUDIO"/>
+    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
+
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+    <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
 
     <uses-permission android:name ="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

+ 1 - 1
resource/src/main/res/values-zh/strings.xml

@@ -136,7 +136,7 @@
     <string name="doctor_title">责任医生</string>
     <string name="nurse_title">责任护士</string>
     <string name="empty_title">祝您安康</string>
-    <string name="reboot_device">重启设备</string>
+    <string name="reboot_device">重启</string>
     <string name="check_update">检查升级</string>
     <string name="server_config">服务器配置</string>
     <string name="product_desc">产品说明:</string>

+ 2 - 3
welcome/src/main/code/com/wdkl/ncs/android/component/welcome/activity/WelcomeActivity.kt

@@ -78,7 +78,7 @@ class WelcomeActivity :BaseActivity<WelcomePresenter, ActivityWelcomeBinding>(),
                 if (it){
                     toHome()
                 }else{
-                    showMessage("请重新授权,进入App")
+                    showMessage("Permission deny!")
                     requestPermissions()
                 }
         }.joinManager(disposableManager)
@@ -92,7 +92,6 @@ class WelcomeActivity :BaseActivity<WelcomePresenter, ActivityWelcomeBinding>(),
      */
     override fun toHome() {
         AppTool.Time.delay(200) {
-            //push("/home/main")
             push("/callingdoor/main")
             finish()
         }
@@ -185,7 +184,7 @@ class WelcomeActivity :BaseActivity<WelcomePresenter, ActivityWelcomeBinding>(),
         },onWifi = {
             debugLog("Welcome","wifi")
         },offline = {
-            noneNetDo()
+            //noneNetDo()
         })
     }