修改了挂断电话的逻辑
authorTrillGates <williamtrillgates@gmail.com>
Thu, 28 Oct 2021 12:48:07 +0000 (20:48 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Thu, 28 Oct 2021 12:48:07 +0000 (20:48 +0800)
app/src/main/java/com/ic/sos/SOSPresenter.java

index fe9b611..c061548 100644 (file)
@@ -87,7 +87,6 @@ public class SOSPresenter {
 
     //是否有接听
     private boolean hasRemoteAnswer = false;
-
     //通话结束
     public static final int STATE_END = 9;
     //正在挂断
@@ -283,13 +282,14 @@ public class SOSPresenter {
         //先监听电话的状态,这个在类创建的时候就已经监听的了
         if (phoneNumList.size() > currentCallIndex) {
             String targetPhoneNum = phoneNumList.get(currentCallIndex);
-            callPhone(targetPhoneNum);
             //开始准备超时
             if (callDuration != 0) {
                 //需要按时挂断
                 handler.removeCallbacks(endCallTask);
+                ICLogger.d("set up end call task...");
                 handler.postDelayed(endCallTask, callDuration * 1000);
             }
+            callPhone(targetPhoneNum);
         }
         if (currentCallIndex == phoneNumList.size() - 1) {
             //拨号当前组最后一个号码了
@@ -306,11 +306,13 @@ public class SOSPresenter {
                     .getMethod("getService", String.class);
             IBinder binder = (IBinder) method.invoke(null, new Object[]{Context.TELEPHONY_SERVICE});
             ITelephony telephony = ITelephony.Stub.asInterface(binder);
+            ICLogger.d("endCall...");
             if (telephony != null) {
                 telephony.endCall();
             }
         } catch (Exception e) {
             e.printStackTrace();
+            ICLogger.e("error", e);
         }
     }