Skip to content

Commit ad628d4

Browse files
committed
请求APPCallTRTCDevice接口完成
1 parent 2b09c3a commit ad628d4

File tree

6 files changed

+65
-16
lines changed

6 files changed

+65
-16
lines changed

sdk/explorer-link-android/src/main/java/com/tencent/iot/explorer/link/core/auth/consts/RequestCode.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ object RequestCode {
6868
const val get_bind_device_token = 3012
6969
const val check_device_bind_token_state = 3013
7070
const val trtc_call_device = 3015
71+
const val call_trtc_device_by_app = 3018
7172
const val all_device = 3016
7273
/*************设备接口结束**************/
7374

sdk/explorer-link-android/src/main/java/com/tencent/iot/explorer/link/core/auth/impl/DeviceImpl.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,11 @@ interface DeviceImpl {
140140
*/
141141
fun trtcCallDevice(deviceId: String, callback: MyCallback)
142142

143+
/**
144+
* 手机请求加入房间
145+
*/
146+
fun callTrtcDeviceByApp(deviceId: String, callback: MyCallback)
147+
143148
/**
144149
* 获取所有设备
145150
*/

sdk/explorer-link-android/src/main/java/com/tencent/iot/explorer/link/core/auth/service/DeviceService.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,16 @@ internal class DeviceService : BaseService(), DeviceImpl {
386386
tokenPost(param, callback, RequestCode.trtc_call_device)
387387
}
388388

389+
/**
390+
* 手机请求加入房间
391+
*/
392+
override fun callTrtcDeviceByApp(deviceId: String, callback: MyCallback) {
393+
val param = tokenParams("APPCallTRTCDevice")
394+
param["DeviceId"] = deviceId
395+
param["ClientIp"] = IPUtil.getHostIP()
396+
tokenPost(param, callback, RequestCode.call_trtc_device_by_app)
397+
}
398+
389399
override fun wifiBindDevice(userId: String, bindDeviceToken: String, familyId: String,
390400
deviceInfo: DeviceInfo, callback: MyCallback) {
391401
val param = tokenParams("AppTokenBindDeviceFamily")

sdkdemo/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
android:exported="true"
118118
android:targetActivity=".core.wxapi.WXEntryActivity" /> <!-- picture start -->
119119
<activity android:name=".core.activity.EnhancedDeviceListActivity"/>
120-
<activity android:name=".core.activity.CameraDetailActivity"/>
120+
<activity android:name=".core.activity.DeviceDetailActivity"/>
121121
</application>
122122

123123
</manifest>
Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
package com.tencent.iot.explorer.link.demo.core.activity
22

3-
import android.os.Bundle
3+
import android.text.TextUtils
44
import android.view.View
55
import android.widget.Toast
6+
import com.alibaba.fastjson.JSON
7+
import com.tencent.iot.explorer.link.core.auth.IoTAuth
8+
import com.tencent.iot.explorer.link.core.auth.callback.MyCallback
9+
import com.tencent.iot.explorer.link.core.auth.entity.DeviceEntity
10+
import com.tencent.iot.explorer.link.core.auth.message.MessageConst
11+
import com.tencent.iot.explorer.link.core.auth.response.BaseResponse
12+
import com.tencent.iot.explorer.link.core.auth.util.JsonManager
13+
import com.tencent.iot.explorer.link.core.link.entity.TRTCParamsEntity
14+
import com.tencent.iot.explorer.link.core.log.L
615
import com.tencent.iot.explorer.link.demo.BaseActivity
716
import com.tencent.iot.explorer.link.demo.R
817
import com.tencent.iot.explorer.link.demo.databinding.ActivityCameraDetailBinding
918
import com.tencent.iot.explorer.link.demo.video.playback.VideoPlaybackActivity
10-
import com.tencent.iot.explorer.link.demo.core.activity.ShareDeviceActivity
1119

1220
/**
1321
* 摄像头详情页面 - 视频播放和控制界面
1422
*/
15-
class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
23+
class DeviceDetailActivity : BaseActivity<ActivityCameraDetailBinding>(), MyCallback {
1624

1725
private var isPlaying = false
1826
private var isMuted = true
@@ -26,10 +34,15 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
2634
override fun initView() {
2735
// // 设置状态栏透明
2836
// setStatusBarTransparent()
29-
37+
val deviceInfo = intent.getStringExtra("deviceInfo")
38+
if (deviceInfo.isNullOrEmpty()) {
39+
L.e("deviceInfo is empty")
40+
return
41+
}
42+
val deviceEntity = JsonManager.parseJson(deviceInfo, DeviceEntity::class.java)
43+
IoTAuth.deviceImpl.callTrtcDeviceByApp(deviceEntity.DeviceId, this)
3044
// 初始化视频播放器
3145
initVideoPlayer()
32-
3346
// 更新UI状态
3447
updateUIState()
3548
}
@@ -112,9 +125,9 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
112125
private fun setStatusBarTransparent() {
113126
// TODO: 实现状态栏透明设置
114127
window.decorView.systemUiVisibility = (
115-
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
116-
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
117-
)
128+
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
129+
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
130+
)
118131
}
119132

120133
/**
@@ -123,7 +136,7 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
123136
private fun initVideoPlayer() {
124137
// TODO: 初始化视频播放器,连接摄像头流
125138
binding.loadingOverlay.visibility = View.VISIBLE
126-
139+
127140
// 模拟视频加载
128141
binding.videoPlayer.postDelayed({
129142
binding.loadingOverlay.visibility = View.GONE
@@ -150,7 +163,8 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
150163
isPlaying = false
151164
updateUIState()
152165
}
153-
Toast.makeText(this, if (isPowerOn) "摄像头已开启" else "摄像头已关闭", Toast.LENGTH_SHORT).show()
166+
Toast.makeText(this, if (isPowerOn) "摄像头已开启" else "摄像头已关闭", Toast.LENGTH_SHORT)
167+
.show()
154168
}
155169

156170
/**
@@ -170,7 +184,7 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
170184
val currentIndex = qualities.indexOf(currentQuality)
171185
val nextIndex = (currentIndex + 1) % qualities.size
172186
currentQuality = qualities[nextIndex]
173-
187+
174188
binding.btnQuality.text = currentQuality
175189
Toast.makeText(this, "画质切换为: $currentQuality", Toast.LENGTH_SHORT).show()
176190
}
@@ -224,18 +238,22 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
224238
// TODO: 云台上移
225239
Toast.makeText(this, "云台上移", Toast.LENGTH_SHORT).show()
226240
}
241+
227242
"down" -> {
228243
// TODO: 云台下移
229244
Toast.makeText(this, "云台下移", Toast.LENGTH_SHORT).show()
230245
}
246+
231247
"left" -> {
232248
// TODO: 云台左移
233249
Toast.makeText(this, "云台左移", Toast.LENGTH_SHORT).show()
234250
}
251+
235252
"right" -> {
236253
// TODO: 云台右移
237254
Toast.makeText(this, "云台右移", Toast.LENGTH_SHORT).show()
238255
}
256+
239257
"home" -> {
240258
// TODO: 云台复位
241259
Toast.makeText(this, "云台复位", Toast.LENGTH_SHORT).show()
@@ -284,7 +302,7 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
284302

285303
// 更新视频播放状态
286304
videoPlayer.visibility = if (isPlaying && isPowerOn) View.VISIBLE else View.INVISIBLE
287-
305+
288306
if (!isPowerOn) {
289307
loadingOverlay.visibility = View.GONE
290308
}
@@ -297,4 +315,18 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
297315
isPlaying = false
298316
isPowerOn = false
299317
}
318+
319+
override fun fail(msg: String?, reqCode: Int) {
320+
L.e("请求失败: $msg, reqCode: $reqCode")
321+
}
322+
323+
override fun success(response: BaseResponse, reqCode: Int) {
324+
if (response.isSuccess()) {
325+
val data =
326+
JSON.parseObject(response.data.toString()).getString(MessageConst.TRTC_PARAMS)
327+
if (TextUtils.isEmpty(data)) return;
328+
val params = JSON.parseObject(data, TRTCParamsEntity::class.java)
329+
// TODO: 呼叫房间
330+
}
331+
}
300332
}

sdkdemo/src/main/java/com/tencent/iot/explorer/link/demo/core/activity/EnhancedDeviceListActivity.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import android.widget.TextView
1010
import android.widget.Toast
1111
import androidx.recyclerview.widget.LinearLayoutManager
1212
import androidx.recyclerview.widget.RecyclerView
13+
import com.alibaba.fastjson.JSON
1314
import com.tencent.iot.explorer.link.core.auth.IoTAuth
1415
import com.tencent.iot.explorer.link.core.auth.callback.MyCallback
1516
import com.tencent.iot.explorer.link.core.auth.consts.RequestCode
@@ -128,7 +129,6 @@ class EnhancedDeviceListActivity : BaseActivity<ActivityEnhancedDeviceListBindin
128129
* 显示用户信息页面
129130
*/
130131
private fun showUserProfile() {
131-
// TODO: 跳转到用户信息页面
132132
Toast.makeText(this, "跳转到用户信息页面", Toast.LENGTH_SHORT).show()
133133
jumpActivity(PersonalInfoActivity::class.java)
134134
}
@@ -137,9 +137,10 @@ class EnhancedDeviceListActivity : BaseActivity<ActivityEnhancedDeviceListBindin
137137
* 打开设备详情
138138
*/
139139
private fun openDeviceDetail(device: DeviceEntity) {
140-
// TODO: 跳转到设备详情页面
141140
Toast.makeText(this, "打开设备: ${device.DeviceName}", Toast.LENGTH_SHORT).show()
142-
jumpActivity(CameraDetailActivity::class.java)
141+
startActivity(Intent(this, DeviceDetailActivity::class.java).apply {
142+
putExtra("deviceInfo", JSON.toJSONString(device))
143+
})
143144
}
144145

145146
/**

0 commit comments

Comments
 (0)