浏览代码

<注册页面增加二维码>

weizhengliang 4 年之前
父节点
当前提交
fac8447427

+ 30 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constants.kt

@@ -16,6 +16,36 @@ class Constants {
         var app_path: String =""//apk下载路径
         var tcp_connected: Boolean = false
 
+        //设备类型
+        var DEVICE_TYPE: Int = 1
+        /**
+         * 注册设备出厂编号
+         */
+        var DEVICE_CODE = ""
+
+        /**
+         * 设备型号
+         */
+        var DEVICE_MODEL = ""
+
+        /**
+         * 设备软件版本信息
+         */
+        var DEVICE_SOFT_VER = "SW1.0"
+
+        /**
+         * 设备硬件版本信息
+         */
+        var DEVICE_HARD_VER = "HV1.0"
+
+        /**
+         * 设备别名
+         */
+        var DEVICE_NAME = "护士主机"
+
+        //MCU版本
+        var MCU_VERSION_NUMBER = ""
+
         var call_type: Int = 0 //通话类型: 0-语音, 1-视频
         //来电设备id
         var fromId: Int? = -1

+ 2 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/nursehome/DeviceContract.kt

@@ -29,6 +29,8 @@ interface DeviceContract {
          * 设置配置数据
          */
         fun showSettingData(data: PartSettingDO)
+
+        fun onNoneNet()
     }
 
     /**

+ 5 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/nursehome/DevicePresenter.kt

@@ -86,6 +86,11 @@ class DevicePresenter @Inject constructor() : RxPresenter<DeviceContract.View>()
             addDisposable(var1)
         }
 
+        override fun onNoneNet() {
+            super.onNoneNet()
+            providerView().onNoneNet()
+        }
+
     }
 
     /**

+ 52 - 7
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/RegisterActivity.kt

@@ -15,18 +15,16 @@ import com.wdkl.ncs.android.component.nursehome.databinding.ActivityNurseHomeBin
 import com.wdkl.ncs.android.component.nursehome.databinding.ActivityRegisterBinding
 import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
 import com.wdkl.ncs.android.lib.base.BaseActivity
-import com.wdkl.ncs.android.lib.utils.AppTool
-import com.wdkl.ncs.android.lib.utils.joinManager
-import com.wdkl.ncs.android.lib.utils.push
-import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.middleware.logic.contract.nursehome.NurseHomeActivityContract
 import com.wdkl.ncs.android.middleware.logic.presenter.nursehome.NurseHomeActivityPresenter
 import com.wdkl.ncs.android.middleware.model.ChildCategoryShell
 import io.reactivex.Observable
 import com.starrtc.demo.utils.AEvent
+import com.wdkl.ncs.android.component.nursehome.BuildConfig
 import com.wdkl.ncs.android.component.nursehome.common.Constants
 import com.wdkl.ncs.android.component.nursehome.service.RTCKeepLiveService
 import com.wdkl.ncs.android.component.nursehome.util.NetHelper
+import com.wdkl.ncs.android.lib.utils.*
 import com.wdkl.ncs.android.middleware.logic.contract.nursehome.DeviceContract
 import com.wdkl.ncs.android.middleware.logic.presenter.nursehome.DevicePresenter
 import com.wdkl.ncs.android.middleware.model.bean.SettingConfiguration
@@ -38,6 +36,7 @@ import com.wdkl.ncs.android.middleware.utils.MessageEvent
 import kotlinx.android.synthetic.main.activity_register.*
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
+import java.lang.StringBuilder
 
 /**
  *注册页Activity
@@ -46,6 +45,7 @@ import org.greenrobot.eventbus.ThreadMode
 class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(),  DeviceContract.View {
     var TAG = RegisterActivity::class.java.getSimpleName()
 
+    val QR_CODE_PATH = "http://m.wdklian.com/care/apk/care.user?type=NCS_DEVICE"
 
     /**
      * 提供layoutID
@@ -69,11 +69,49 @@ class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(
 
         Constants.mac = NetHelper.getInstance().macAddress
         Log.e(TAG,"mac "+Constants.mac)
-        device_info_tv.text = "当前设备MAC:"+Constants.mac
+        tv_local_mac.text = "本机MAC:"+Constants.mac
+
+        Thread{
+            //val logoBitmap = BitmapFactory.decodeResource(resources, R.mipmap.erlogo)
+            var builder = StringBuilder()
+            builder.append(QR_CODE_PATH)
+            builder.append("&code=")
+            builder.append(Constants.DEVICE_CODE)
+            builder.append("&mac=")
+            builder.append(Constants.mac)
+            builder.append("&model=")
+            builder.append(Constants.DEVICE_MODEL)
+            builder.append("&hard_ver=")
+            builder.append(Constants.DEVICE_HARD_VER)
+            builder.append("&soft_ver=")
+            builder.append(Constants.DEVICE_SOFT_VER)
+            builder.append("&device_type=")
+            builder.append(Constants.DEVICE_TYPE)
+            builder.append("&device_name=")
+            builder.append(Constants.DEVICE_NAME)
+            val code = EcodeHelper().createQRImage(builder.toString(),200, null)
+            activity.runOnUiThread {
+                view_qr_code?.setImageBitmap(code)
+            }
+        }.start()
+        val macAddr = NetHelper.getInstance().macAddress
+        val ipAddr = NetHelper.getInstance().localIP
+        tv_local_ip.text = "本机IP: " + ipAddr
+        tv_local_mac.text = "本机MAC: " + macAddr
+        tv_app_version.text = "APP版本: V" + BuildConfig.VERSION_NAME
+        tv_mcu_version.text = "MCU版本: " + Constants.MCU_VERSION_NUMBER
+
+
+
+        btn_reload.isEnabled = false
+        btn_reload.setOnClickListener {
+            btn_reload.isEnabled = false
+            presenter.loadData(Constants.mac!!)
+            presenter.loadTcpData()
+        }
 
         presenter.loadData(Constants.mac!!)
         presenter.loadTcpData()
-
     }
 
     private fun requestPermissions(){
@@ -148,7 +186,7 @@ class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(
 
 //        initSDK("000100")
         //initSDK(data.sipId)
-        AppTool.Time.delay(800) {
+        AppTool.Time.delay(500) {
             push("/nursehome/main")
             finish()
         }
@@ -234,7 +272,14 @@ class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(
      *处理错误信息
      */
     override fun onError(message: String, type: Int) {
+        btn_reload.isEnabled = true
     }
+
+    override fun onNoneNet() {
+        Log.e(TAG,"none net ")
+        btn_reload.isEnabled = true
+    }
+
     /**
      *耗时加载完成
      */

+ 19 - 0
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/util/NetHelper.java

@@ -14,6 +14,7 @@ import com.wdkl.ncs.android.lib.base.BaseApplication;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.net.Inet4Address;
 import java.net.InetAddress;
 import java.net.NetworkInterface;
 import java.net.SocketException;
@@ -507,6 +508,24 @@ public class NetHelper {
         return ip;
     }
 
+    //获取本地ip地址
+    public String getLocalIP() {
+        try {
+            for (Enumeration<NetworkInterface> enNetI = NetworkInterface.getNetworkInterfaces(); enNetI.hasMoreElements(); ) {
+                NetworkInterface netI = enNetI.nextElement();
+                for (Enumeration<InetAddress> enumIpAddr = netI.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
+                    InetAddress inetAddress = enumIpAddr.nextElement();
+                    if (inetAddress instanceof Inet4Address && !inetAddress.isLoopbackAddress()) {
+                        return inetAddress.getHostAddress();
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
     public static boolean isBTConnected() {
         BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
         if (btAdapter != null) {

+ 68 - 25
nursehome/src/main/res/layout/activity_register.xml

@@ -1,31 +1,74 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="40dp"
-        android:text="注册页面"
-        android:textSize="20dp" />
-
-    <TextView
-        android:id="@+id/device_info_tv"
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:gravity="center"
-        android:text="设备信息"
-        android:textSize="16px" />
+        android:layout_marginTop="6dp"
+        android:layout_marginBottom="6dp"
+        android:background="@color/white"
+        android:orientation="vertical"
+        android:gravity="center_horizontal">
 
-    <TextView
-        android:id="@+id/feedback_device_info_tv"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:gravity="center"
-        android:text=""
-        android:textSize="16px" />
-</LinearLayout>
+        <ImageView
+            android:id="@+id/view_qr_code"
+            android:layout_marginTop="10dp"
+            android:layout_width="200dp"
+            android:layout_height="200dp"
+            android:layout_gravity="center_horizontal" />
+
+        <TextView
+            android:id="@+id/tv_local_ip"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="10dp"
+            android:text="本机IP:"
+            android:textColor="@color/black"
+            android:textSize="20sp" />
+
+        <TextView
+            android:id="@+id/tv_local_mac"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="10dp"
+            android:text="本机MAC:"
+            android:textColor="@color/black"
+            android:textSize="20sp" />
+
+        <TextView
+            android:id="@+id/tv_app_version"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="10dp"
+            android:text="版本信息:"
+            android:textColor="@color/black"
+            android:textSize="20sp" />
+
+        <TextView
+            android:id="@+id/tv_mcu_version"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="10dp"
+            android:text="MCU:"
+            android:textColor="@color/black"
+            android:textSize="20sp" />
+
+        <TextView
+            android:id="@+id/feedback_device_info_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="10dp"
+            android:textColor="@color/black"
+            android:textSize="20sp" />
+
+        <Button
+            android:id="@+id/btn_reload"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="40dp"
+            android:padding="10dp"
+            android:background="#2F9DF1"
+            android:text="重新加载"
+            android:textSize="20sp" />
+
+    </LinearLayout>
 </layout>