Skip to content

Commit d3820cc

Browse files
author
archurtan
committed
TRTC-'通话过程中,设备端断网,应用端过一段时间需提示对方设备已离线'
https://docs.qq.com/sheet/DQVNJZmZXaWx1RVRV?tab=grnvqb Change-Id: I98970eb2542992e7e995f57b222d2e44ed883e28
1 parent 99c514a commit d3820cc

File tree

6 files changed

+42
-12
lines changed

6 files changed

+42
-12
lines changed

app/src/main/java/com/tencent/iot/explorer/link/App.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -202,21 +202,17 @@ class App : Application(), Application.ActivityLifecycleCallbacks, PayloadMessag
202202
override fun success(response: BaseResponse, reqCode: Int) {
203203
if (response.isSuccess()) {
204204
response.parse(DeviceListResponse::class.java)?.run {
205-
val deviceList = DeviceList
206-
val productIdList = ArrayList<String>()
207205
// TRTC: 轮询在线的trtc设备的call_status
208206
for (device in DeviceList) {
209207
val deviceIds = ArrayList<String>()
210208
deviceIds.add(device.DeviceId)
211-
productIdList.add(device.ProductId)
212209
getDeviceOnlineStatus(device.ProductId, deviceIds, device)
213210
}
214211
// TRTC:轮询在线的trtc共享设备的call_status
215212
for (device in data.shareDeviceList) {
216213
val deviceIds = ArrayList<String>()
217214
if (!device.DeviceId.isNullOrEmpty() && !device.ProductId.isNullOrEmpty()) {
218215
deviceIds.add(device.DeviceId)
219-
productIdList.add(device.ProductId)
220216
getDeviceOnlineStatus(device.ProductId, deviceIds, device)
221217
}
222218
}
@@ -527,6 +523,9 @@ class App : Application(), Application.ActivityLifecycleCallbacks, PayloadMessag
527523
TRTCUIManager.getInstance().exitRoom()
528524
}
529525
}
526+
} else if (subType == MessageConst.OFFLINE) {
527+
val deviceId = paramsObject.getString(MessageConst.DEVICE_ID)
528+
TRTCUIManager.getInstance().userOffline(deviceId)
530529
}
531530
}
532531
}

sdk/explorer-link-rtc/src/main/java/com/tencent/iot/explorer/link/rtc/model/TRTCCallingParamsCallback.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ public interface TRTCCallingParamsCallback {
99
void userBusy();
1010

1111
void otherUserAccept();
12+
13+
void userOffline(String deviceId);
1214
}

sdk/explorer-link-rtc/src/main/java/com/tencent/iot/explorer/link/rtc/model/TRTCUIManager.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,10 @@ public void otherUserAccept() {
6868
callingParamsCallback.otherUserAccept();
6969
}
7070
}
71+
72+
public void userOffline(String deviceId) {
73+
if (callingParamsCallback != null) {
74+
callingParamsCallback.userOffline(deviceId);
75+
}
76+
}
7177
}

sdk/explorer-link-rtc/src/main/java/com/tencent/iot/explorer/link/rtc/ui/audiocall/TRTCAudioCallActivity.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public class TRTCAudioCallActivity extends AppCompatActivity implements NetWorkS
8888
private boolean isHandsFree = true;
8989
private boolean isMuteMic = false;
9090
private volatile boolean mIsEnterRoom = false;
91+
private Map<String, Boolean> mUserOfflineMap = new HashMap<>();
9192

9293
private TimerTask otherEnterRoomTask = null;
9394
private TimerTask enterRoomTask = null;
@@ -145,7 +146,12 @@ public void run() {
145146
if (userInfo != null) {
146147
mCallUserInfoList.remove(userInfo);
147148
}
148-
mStatusView.setText(R.string.trtccalling_customer_hand_up);
149+
Boolean offline = mUserOfflineMap.get(userId);
150+
if (offline != null && offline) {
151+
Toast.makeText(TRTCAudioCallActivity.this, R.string.trtccalling_customer_offline, Toast.LENGTH_SHORT).show();
152+
} else {
153+
mStatusView.setText(R.string.trtccalling_customer_hand_up);
154+
}
149155
removeCallbackAndFinish();
150156
}
151157
});
@@ -394,6 +400,11 @@ public void run() {
394400

395401
removeCallbackAndFinish();
396402
}
403+
404+
@Override
405+
public void userOffline(String deviceId) {
406+
mUserOfflineMap.put(deviceId, true);
407+
}
397408
});
398409

399410
initView();

sdk/explorer-link-rtc/src/main/java/com/tencent/iot/explorer/link/rtc/ui/videocall/TRTCVideoCallActivity.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ public class TRTCVideoCallActivity extends AppCompatActivity implements NetWorkS
9797
private boolean isHandsFree = true;
9898
private boolean isMuteMic = false;
9999
private volatile boolean mIsEnterRoom = false;
100+
private Map<String, Boolean> mUserOfflineMap = new HashMap<>();
100101

101102
private TimerTask otherEnterRoomTask = null;
102103
private TimerTask enterRoomTask = null;
@@ -155,13 +156,18 @@ public void run() {
155156
if (userInfo != null) {
156157
mCallUserInfoList.remove(userInfo);
157158
}
158-
runOnUiThread(new Runnable() {
159-
@Override
160-
public void run() {
161-
mStatusView.setText(R.string.trtccalling_customer_hand_up);
162-
mStatusView.setVisibility(View.VISIBLE);
163-
}
164-
});
159+
Boolean offline = mUserOfflineMap.get(userId);
160+
if (offline != null && offline) {
161+
Toast.makeText(TRTCVideoCallActivity.this, R.string.trtccalling_customer_offline, Toast.LENGTH_SHORT).show();
162+
} else {
163+
runOnUiThread(new Runnable() {
164+
@Override
165+
public void run() {
166+
mStatusView.setText(R.string.trtccalling_customer_hand_up);
167+
mStatusView.setVisibility(View.VISIBLE);
168+
}
169+
});
170+
}
165171
stopCameraAndFinish();
166172
}
167173
});
@@ -425,6 +431,11 @@ public void run() {
425431
});
426432
stopCameraAndFinish();
427433
}
434+
435+
@Override
436+
public void userOffline(String deviceId) {
437+
mUserOfflineMap.put(deviceId, true);
438+
}
428439
});
429440

430441
initView();

sdk/explorer-link-rtc/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<string name="trtccalling_dialed_is_busy_audio">"语音通话中..."</string>
99
<string name="trtccalling_dialed_is_busy_vedio">"视频通话中..."</string>
1010
<string name="trtccalling_customer_hand_up">"对方已挂断..."</string>
11+
<string name="trtccalling_customer_offline">"对方设备已离线,请稍后再试"</string>
1112
<string name="trtccalling_customer_no_resp">"对方无人接听..."</string>
1213
<string name="trtccalling_customer_no_net">"网络异常,请稍后重试"</string>
1314
<string name="trtccalling_customer_busy">"对方正忙..."</string>

0 commit comments

Comments
 (0)