settings.gradle
文件,并在其中增加如下代码,它的作用是将 步骤二 中下载的 tuicallkit 组件导入到您当前的项目中:include ':tuicallkit'
build.gradle
文件,并在其中增加如下代码,它的作用是声明当前 app 对新加入的 tuicallkit 组件的依赖:api project(':tuicallkit')
TRTC SDK
、IM SDK
、tuicallengine
以及公共库 tuicore
,不需要开发者单独配置。如需进行版本升级,则修改tuicallkit/build.gradle
文件即可。proguard-rules.pro
文件中添加如下代码:-keep class com.tencent.** { *; }
tuicallkit/src/main/AndroidManifest.xml
。//设置对登录结果的监听器private final TUILoginListener mLoginListener = new TUILoginListener() {@Overridepublic void onKickedOffline() {super.onKickedOffline();Log.i(TAG, "You have been kicked off the line. Please login again!");//logout();}@Overridepublic void onUserSigExpired() {super.onUserSigExpired();Log.i(TAG, "Your user signature information has expired");//logout();}};TUILogin.addLoginListener(mLoginListener);//登录TUILogin.login(context,1400000001, // 请替换为步骤一取到的 SDKAppID"denny", // 请替换为您的 UserID"xxxxxxxxxxx", // 您可以在控制台中计算一个 UserSig 并填在这个位置new TUICallback() {@Overridepublic void onSuccess() {Log.i(TAG, "login success");}@Overridepublic void onError(int errorCode, String errorMessage) {Log.e(TAG, "login failed, errorCode: " + errorCode + " msg:" + errorMessage);}});
// 发起1对1视频通话(假设 UserID 为 mike)TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video);
参数 | 类型 | 含义 |
userId | String | 目标用户的 UserID: "mike" |
callMediaType | TUICallDefine.MediaType | 通话的媒体类型,示例: TUICallDefine.MediaType.Video |
TUICallKit.createInstance(context).groupCall("12345678", Arrays.asList("jane", "mike", "tommy"),TUICallDefine.MediaType.Video);
参数 | 类型 | 含义 |
groupId | String | 群组 Id,示例: "12345678" |
userIdList | List | 目标用户的 UserID 列表,示例: {"jane", "mike", "tommy"} |
callMediaType | TUICallDefine.MediaType | 通话的媒体类型,示例: TUICallDefine.MediaType.Video |
悬浮窗权限
或后台弹出应用
等权限时,仍然会自动弹出呼叫界面并播放来电铃音。悬浮窗权限
或后台弹出应用
等权限时,TUICallKit 会播放来电铃音,提示用户接听或挂断。TUICallKit.createInstance(context).setSelfInfo("jack", "https:/****/user_avatar.png", callback);
应用的进程被杀死后
或者应用退到后台后
,还可以正常接收到音视频通话请求,就需要增加离线唤醒功能,详情见 离线唤醒(Android)。TUICallKit.createInstance(context).enableFloatWindow(true);
private TUICallObserver mTUICallObserver = new TUICallObserver() {@Overridepublic void onCallBegin(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType, TUICallDefine.Role callRole) {}public void onCallEnd(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType,TUICallDefine.Role callRole, long totalTime) {}public void onUserNetworkQualityChanged(List<TUICommonDefine.NetworkQualityInfo> networkQualityList) {}};private void initData(){TUICallEngine.createInstance(mContext).addObserver(mTUICallObserver);}
TUICallKit.createInstance(context).setCallingBell(filePath);
TUICallDefine.CallParams params = new TUICallDefine.CallParams();params.offlinePushInfo = OfflinePushInfoConfig.createOfflinePushInfo(mContext);params.timeout = 30;params.userData = "user data";TUICallEngine.createInstance(mContext).call(roomId, userId, mediaType, params, null);
java.lang.UnsatisfiedLinkError: No implementation found for void com.tencent.liteav.base.Log.nativeWriteLogToNative(int, java.lang.String, java.lang.String) (tried Java_com_tencent_liteav_base_Log_nativeWriteLogToNative and Java_com_tencent_liteav_base_Log_nativeWriteLogToNative__ILjava_lang_String_2Ljava_lang_String_2)at com.tencent.liteav.base.Log.nativeWriteLogToNative(Native Method)at com.tencent.liteav.base.Log.i(SourceFile:177)at com.tencent.liteav.basic.log.TXCLog.i(SourceFile:36)at com.tencent.liteav.trtccalling.model.impl.base.TRTCLogger.i(TRTCLogger.java:15)at com.tencent.liteav.trtccalling.model.impl.ServiceInitializer.init(ServiceInitializer.java:36)at com.tencent.liteav.trtccalling.model.impl.ServiceInitializer.onCreate(ServiceInitializer.java:101)at android.content.ContentProvider.attachInfo(ContentProvider.java:2097)at android.content.ContentProvider.attachInfo(ContentProvider.java:2070)at android.app.ActivityThread.installProvider(ActivityThread.java:8168)at android.app.ActivityThread.installContentProviders(ActivityThread.java:7709)at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7573)at android.app.ActivityThread.access$2600(ActivityThread.java:260)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2435)at android.os.Handler.dispatchMessage(Handler.java:110)at android.os.Looper.loop(Looper.java:219)at android.app.ActivityThread.main(ActivityThread.java:8668)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
本页内容是否解决了您的问题?