Procházet zdrojové kódy

[WallPadDevService]
1. App Ver. 갱신
- 2022.05.17.01
2. 최신 WallPadAPI 적용
- 통화이벤트 알림용 BR 추가
3. 현관통화 시작 BR 연동기능 추가
- 현관통화 BR을 수신하면, 일정시간(3초, 통화앱이 완전히 구동되기 까지)동안 다른 호호출을 무시한다.
4. 무인경비 호출수신 알림BR추가
- WallPadMain에서 현관통화 호출을 일정시간(약 3초) 무시한다.

[WallPadAPI]
1. API Ver. 갱신
- 2022.05.17.01
2. 통화이벤트 알림용 BR 추가
- public static final String BR_NOTIFY_FRONTCALL_EVENT = "kr.co.icontrols.wallpad.BR_NOTIFY_FRONTCALL_EVENT"; // 현관 호출 수신 알림용 BR
- public static final String BR_NOTIFY_HOMEAUTOCALL_EVENT = "kr.co.icontrols.wallpad.BR_NOTIFY_HOMEAUTOCALL_EVENT"; // 무인경비 호출 수신 알림용 BR

Changwoo Nam před 3 roky
rodič
revize
bfaae9ce35

binární
WallPadDevService/libs/WallPadAPIforSVC.jar


+ 1 - 1
WallPadDevService/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.artncore.deviceservice"
     android:versionCode="1"
-    android:versionName="2022.05.12.01">
+    android:versionName="2022.05.17.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

+ 22 - 1
WallPadDevService/src/main/java/com/artncore/wallpaddevservice/driver/HomeAutomation_New_Controller.java

@@ -765,6 +765,7 @@ public class HomeAutomation_New_Controller extends DeviceManager {
         filter.addAction(define.NOTIFY_ACNAME);
         filter.addAction(HomeAutomation_Call_Status.BR_ACK_WALLPADCALL_LIVE);
         filter.addAction(BR_MAIN_NOTI.ACNAME_MAIN_NOTI);
+        filter.addAction(HomeAutomation_Call.BR_NOTIFY_FRONTCALL_EVENT);
 
         //엘리베이터 버튼 눌릴 시 BR수신 필요
         ServiceMain.svcContext.registerReceiver(mWallPadNotifyBR, filter);
@@ -805,7 +806,13 @@ public class HomeAutomation_New_Controller extends DeviceManager {
 
             if (mDriver.Polling.Status != Driver.PollingList.STATUS.Normal) return;
 
-            if (strAction.equals(define.NOTIFY_ACNAME)) {
+            if (strAction.equals(HomeAutomation_Call.BR_NOTIFY_FRONTCALL_EVENT)) {
+                // 현관통화 수신시
+                setBlockNewCall(true);
+                HomeAutoCallHandler.removeMessages(HANDLERMSG.RELEASE_BLOCK_NEWCALL);
+                sendHandlerMsgDelayed(HANDLERMSG.RELEASE_BLOCK_NEWCALL, 0, 0, 3000);
+            }
+            else if (strAction.equals(define.NOTIFY_ACNAME)) {
                 //방범 관련 사항
                 int nKind = intent.getIntExtra(BR_MAIN_NOTI.KIND, 0);
                 DeviceLog("[mWallPadNotifyBR] strAction [" + strAction + "], nKind [" + nKind + "]");
@@ -906,6 +913,7 @@ public class HomeAutomation_New_Controller extends DeviceManager {
                 }
                 Log.i(TAG, "[mWallPadNotifyBR] Call Status is changed!! Type_Device [" + mDriver.CallStatus.Type_Device + "], Type_Call [" + mDriver.CallStatus.Type_Call + "]" );
             } else if (strAction.equals(HomeAutomation_Call_Status.BR_ACK_WALLPADCALL_LIVE)) {
+                if (!bWallPadCallLive) setCallStaus(true);
                 bWallPadCallLive = true;
                 nWallPadCallACKCnt = MAX_WALLPADCALL_LIVE_CNT;
             }
@@ -3741,6 +3749,7 @@ public class HomeAutomation_New_Controller extends DeviceManager {
                 }
             }
             else if (nCallType == HomeAutomation_Call.CALLTYPE_RECEIVE_CALL_REQUEST) {
+                sendHomeAutoCallRevEvent();
                 if (mPreviousCallInfo.checkCallBRDelay()) {
                     // 일정시간 이전에 호출을 수신한 이력이 있는 경우
 //                    return mHomeAutomation_Call.sendHomeAutoCallBR(nDeviceType, HomeAutomation_Call.CALLTYPE_SEND_CALL_END, nID_Dong, nID_Ho);   // 해당 메시지에 대해 통화 종료를 전송한다.
@@ -4997,4 +5006,16 @@ public class HomeAutomation_New_Controller extends DeviceManager {
         }
     }
 
+    private void sendHomeAutoCallRevEvent() {
+        try {
+//            Log.i(TAG, "[sendHomeAutoCallRevEvent] ===== START =====");
+            Intent mIntent = new Intent();
+            mIntent.setAction(HomeAutomation_Call.BR_NOTIFY_HOMEAUTOCALL_EVENT);
+            ServiceMain.svcContext.sendBroadcast(mIntent);
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] sendWallPadCallLiveBR_ACK()");
+            e.printStackTrace();
+        }
+    }
+
 }