瀏覽代碼

主机呼叫分机时分机自动接听

weizhengliang 3 年之前
父節點
當前提交
916d5db4a5
共有 2 個文件被更改,包括 70 次插入56 次删除
  1. 1 1
      app/build.gradle
  2. 69 55
      app/src/main/java/com/wdkl/callingbed/ui/CallingBedActivity.java

+ 1 - 1
app/build.gradle

@@ -29,7 +29,7 @@ android {
         minSdkVersion 19
         minSdkVersion 19
         targetSdkVersion 26
         targetSdkVersion 26
         versionCode 1
         versionCode 1
-        versionName "1.5"
+        versionName "1.51"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
 
 
         buildConfigField "String", "BUILD_TIME", getDate()
         buildConfigField "String", "BUILD_TIME", getDate()

+ 69 - 55
app/src/main/java/com/wdkl/callingbed/ui/CallingBedActivity.java

@@ -416,6 +416,9 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
     //床位是否入住
     //床位是否入住
     private boolean isEmptyInfo = true;
     private boolean isEmptyInfo = true;
 
 
+    //主机呼叫自动接听
+    private boolean autoAnswer = true;
+
     /**
     /**
      * 时间线程
      * 时间线程
      */
      */
@@ -1529,19 +1532,11 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
                 }
                 }
                 if (buffer[5] == 0) { //呼叫护士键按住不动
                 if (buffer[5] == 0) { //呼叫护士键按住不动
                     LogUtil.d("WWW", "呼叫护士键==0");
                     LogUtil.d("WWW", "呼叫护士键==0");
-                } else if (buffer[5] == 1) {//呼叫护士键短按松开
+                } else if (buffer[5] == 1 || buffer[5] == 2) {//呼叫护士键短按长按松开
                     CallingBedActivity.this.runOnUiThread(new Runnable() {
                     CallingBedActivity.this.runOnUiThread(new Runnable() {
                         public void run() {
                         public void run() {
                             LogUtil.d("WWW", "呼叫护士键==1");
                             LogUtil.d("WWW", "呼叫护士键==1");
-                            if (CALL_STATUS.equals(Constants.IN_CALL)) {
-                                //主机呼叫分机,按键接听
-                                handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
-                                //=============================================SIP自动接听===================================//
-                                SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().autoTalking();
-                                CALL_STATUS = Constants.IN_CALLING;
-                                tvNurseText.setText("正在通话中...");
-                                tvNurseTimeOut.setText("");
-                            } else {
+                            if (autoAnswer) {
                                 long curTimeMills = System.currentTimeMillis();
                                 long curTimeMills = System.currentTimeMillis();
                                 if (curTimeMills - localMillsCallNurse > 3000) {
                                 if (curTimeMills - localMillsCallNurse > 3000) {
                                     clickVNurse();
                                     clickVNurse();
@@ -1552,22 +1547,16 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
                                     //handsMICStatus = setHandsMIC(serialPortUtil, false);//点击了外部按键就将手柄MIC关掉
                                     //handsMICStatus = setHandsMIC(serialPortUtil, false);//点击了外部按键就将手柄MIC关掉
                                     handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
                                     handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
                                 }
                                 }
-                            }
-                        }
-                    });
-                } else if (buffer[5] == 2) {//呼叫护士键长按松开
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            if (CALL_STATUS.equals(Constants.IN_CALL)) {
-                                //主机呼叫分机,按键接听
-                                handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
-                                //=============================================SIP自动接听===================================//
-                                SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().autoTalking();
-                                CALL_STATUS = Constants.IN_CALLING;
-                                tvNurseText.setText("正在通话中...");
-                                tvNurseTimeOut.setText("");
                             } else {
                             } else {
-                                //if (Constants.IS_CALLED == 0) {//当前没有呼叫长按后还是呼叫
+                                if (CALL_STATUS.equals(Constants.IN_CALL)) {
+                                    //主机呼叫分机,按键接听
+                                    handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
+                                    //=============================================SIP自动接听===================================//
+                                    SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().autoTalking();
+                                    CALL_STATUS = Constants.IN_CALLING;
+                                    tvNurseText.setText("正在通话中...");
+                                    tvNurseTimeOut.setText("");
+                                } else {
                                     long curTimeMills = System.currentTimeMillis();
                                     long curTimeMills = System.currentTimeMillis();
                                     if (curTimeMills - localMillsCallNurse > 3000) {
                                     if (curTimeMills - localMillsCallNurse > 3000) {
                                         clickVNurse();
                                         clickVNurse();
@@ -1578,9 +1567,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
                                         //handsMICStatus = setHandsMIC(serialPortUtil, false);//点击了外部按键就将手柄MIC关掉
                                         //handsMICStatus = setHandsMIC(serialPortUtil, false);//点击了外部按键就将手柄MIC关掉
                                         handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
                                         handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
                                     }
                                     }
-                                //} else if (Constants.IS_CALLED == 1) {//当前有呼叫长按后取消呼叫
-                                //    UdpSendUtil.sendHangUp(initDataEntity, mainDataEntity);//长按取消呼叫 add by waderson 20191108
-                                //}
+                                }
                             }
                             }
                         }
                         }
                     });
                     });
@@ -1592,25 +1579,34 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
                     CallingBedActivity.this.runOnUiThread(new Runnable() {
                     CallingBedActivity.this.runOnUiThread(new Runnable() {
                         public void run() {
                         public void run() {
                             LogUtil.d("WWW", "呼叫护士键==-2");
                             LogUtil.d("WWW", "呼叫护士键==-2");
-                            if (CALL_STATUS.equals(Constants.STANDBY) || CALL_STATUS.equals(Constants.IN_CALLING) || CALL_STATUS.equals(NURSE_CALL_TIMEOUT)) {  //待机状态或呼叫超时或通话中可以挂断
-                                handsMICStatus = setHandsMIC(serialPortUtil, true);
-
-                                clickVNurse();
-                                tvNurseTimeOut.setText("");
-                                //呼叫超时倒计时开启
-                                callTypeCallNurse = "2";
-                                localMillsCallNurse = System.currentTimeMillis();
-                            } /*else {
-                                handsMICStatus = setHandsMIC(serialPortUtil, false);
-                            }*/
-                            else if (CALL_STATUS.equals(Constants.IN_CALL)) {
-                                //主机呼叫分机,按键接听
-                                handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
-                                //=============================================SIP自动接听===================================//
-                                SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().autoTalking();
-                                CALL_STATUS = Constants.IN_CALLING;
-                                tvNurseText.setText("正在通话中...");
-                                tvNurseTimeOut.setText("");
+                            if (autoAnswer) {
+                                if (CALL_STATUS.equals(Constants.STANDBY) || CALL_STATUS.equals(Constants.IN_CALLING) || CALL_STATUS.equals(NURSE_CALL_TIMEOUT)) {  //待机状态或呼叫超时或通话中可以挂断
+                                    handsMICStatus = setHandsMIC(serialPortUtil, true);
+
+                                    clickVNurse();
+                                    tvNurseTimeOut.setText("");
+                                    //呼叫超时倒计时开启
+                                    callTypeCallNurse = "2";
+                                    localMillsCallNurse = System.currentTimeMillis();
+                                }
+                            } else {
+                                if (CALL_STATUS.equals(Constants.STANDBY) || CALL_STATUS.equals(Constants.IN_CALLING) || CALL_STATUS.equals(NURSE_CALL_TIMEOUT)) {  //待机状态或呼叫超时或通话中可以挂断
+                                    handsMICStatus = setHandsMIC(serialPortUtil, true);
+
+                                    clickVNurse();
+                                    tvNurseTimeOut.setText("");
+                                    //呼叫超时倒计时开启
+                                    callTypeCallNurse = "2";
+                                    localMillsCallNurse = System.currentTimeMillis();
+                                } else if (CALL_STATUS.equals(Constants.IN_CALL)) {
+                                    //主机呼叫分机,按键接听
+                                    handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
+                                    //=============================================SIP自动接听===================================//
+                                    SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().autoTalking();
+                                    CALL_STATUS = Constants.IN_CALLING;
+                                    tvNurseText.setText("正在通话中...");
+                                    tvNurseTimeOut.setText("");
+                                }
                             }
                             }
                         }
                         }
                     });
                     });
@@ -2434,14 +2430,8 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
                 } catch (Exception e) {
                 } catch (Exception e) {
                     e.printStackTrace();
                     e.printStackTrace();
                 }
                 }
-                if (CALL_STATUS.equals(Constants.STANDBY)) {
-                    //主机主动呼叫分机
-                    CALL_STATUS = Constants.IN_CALL;
-                    showThisView(vNurse);
-                    SoundPoolManager.getInstance().playSound(1);
-                    tvNurseText.setText("主机请求通话...");
-                    tvNurseTimeOut.setText("");
-                } else {
+
+                if (autoAnswer) {
                     //分机主动呼叫主机
                     //分机主动呼叫主机
                     handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
                     handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
                     //=============================================SIP自动接听===================================//
                     //=============================================SIP自动接听===================================//
@@ -2456,6 +2446,30 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
                     //jbVNurse.stopJumping();
                     //jbVNurse.stopJumping();
                     tvNurseText.setText("正在通话中...");
                     tvNurseText.setText("正在通话中...");
                     tvNurseTimeOut.setText("");
                     tvNurseTimeOut.setText("");
+                } else {
+                    if (CALL_STATUS.equals(Constants.STANDBY)) {
+                        //主机主动呼叫分机
+                        CALL_STATUS = Constants.IN_CALL;
+                        showThisView(vNurse);
+                        SoundPoolManager.getInstance().playSound(1);
+                        tvNurseText.setText("主机请求通话...");
+                        tvNurseTimeOut.setText("");
+                    } else {
+                        //分机主动呼叫主机
+                        handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
+                        //=============================================SIP自动接听===================================//
+                        SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().autoTalking();
+
+                        //正在通话中:isIncomingCall() = true
+                        //CallingBedActivity.initPlayerVolume(0.0f);
+
+                        CALL_STATUS = Constants.IN_CALLING;
+                        showThisView(vNurse);
+                        //jbVNurse = setJumpingBeans(tvNurseText, "正在通话中...");
+                        //jbVNurse.stopJumping();
+                        tvNurseText.setText("正在通话中...");
+                        tvNurseTimeOut.setText("");
+                    }
                 }
                 }
 
 
                 if (isTransfer) {
                 if (isTransfer) {