# Android 接入步骤

# 引入文件到项目中

将提供的 aar 文件添加到项目。

# 注意事项:

  1. 如果接入高清视频功能,使用时需要从混淆脚本中过滤如下包名:
-keep interface    com.tencent.thumbplayer.api.** { *; }
-keep class        com.tencent.thumbplayer.api.** { *; }
-keep interface    com.tencent.thumbplayer.core.** { *; }
-keep class        com.tencent.thumbplayer.core.** { *; }
-keep class        com.tencet.tvkbeacon.** {*;}
1
2
3
4
5
  1. 新版SDK只支持open_sdk_3.3.8(QQ互联)以上版本,同时因android11沙箱特性需要接入方在配置中加上${applicationId}.QQSDKFileprovider,如果接入方接的是3.3.8以下版本需提前告知,只能接入旧版SlugSdk

# 调用 SlugSDK

# 1. 初始化 sdk 配置

2.16.0 以及以上版本(比如 2.16.0、2.16.1 等)

import com.tencent.slugsdk.SlugWebAdapter; //引入浏览器sdk类

/*
* 初始化sdk配置,在登录后进入游戏大厅界面调用初始化,通用版本使用
* @context context对象,可以传当前activity对象
* */
SlugWebAdapter.initSlugSDKConfig(Context context);


/*
* 初始化sdk配置,在登录后进入游戏大厅界面调用初始化,接入高清视频版本时使用
* @context context对象,可以传当前activity对象
* @appkey 高清视频appkey
* @platform 高清视频platform
* @stdfrom 高清视频stdfrom
* */
SlugWebAdapter.initSlugSDKConfig(Context context, String appkey, int platform, String stdfrom);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

2.16.0 以下版本(比如 2.15.0、2.15.1 等)需要传 gameId 参数

import com.tencent.slugsdk.SlugWebAdapter; //引入浏览器sdk类

/*
* 初始化sdk配置,在登录后进入游戏大厅界面调用初始化,通用版本使用
* @context context对象
* @gameId 游戏id,申请SlugSDK时分配
* */
SlugWebAdapter.initSlugSDKConfig(Context context, String gameId);


/*
* 初始化sdk配置,在登录后进入游戏大厅界面调用初始化,接入高清视频版本时使用
* @context context对象
* @gameId 游戏id,申请SlugSDK时分配
* @appkey 高清视频appkey
* @platform 高清视频platform
* @stdfrom 高清视频stdfrom
* */
SlugWebAdapter.initSlugSDKConfig(Context context, String gameId, String appkey, int platform, String stdfrom);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 2. 调用 SDK 打开页面

注意:打开页面会打开一个 activity(在新进程), 这时游戏的 activity 将处于后台(处于后台可能与服务器连接会断开),返回游戏大厅时游戏注意如果与服务器连接断开需要游戏自动重新连接下

import com.tencent.slugsdk.SlugWebAdapter; //引入浏览器sdk类

/*
* @currentActivity 当前activity对象
* @url 打开的页面url
* @supportedOrientations 设置屏幕方向类型(1:只支持横屏,2:只支持竖屏,3:横竖屏都支持)
* @qqAppid 设置游戏的qq Appid(用来分享到qq)
* @wxAppid 设置游戏的微信Appid(用来分享到微信)
* @className: String类型,比如"com.tencent.ingame.TestActivity",从H5页面跳转到游戏的某个界面,如果不需要可以设置为"",H5页面跳转到游戏的某个界面时,会先跳转到游戏的该Activity(Activity声明需设置singleTask或singleTop)再由该Activity作为中转跳转到具体的游戏界面,该Activity先在onNewIntent方法setIntent(intent),然后可以通过getIntent().getStringExtra("routeInfo")获取跳转的路由信息,比如关闭浏览器时获取的routeInfo值为"close"
* @finishShouldSendMsgToGame 浏览器webview finish时向游戏发送close消息,不需要可以传false,如果需要则必须先设置@className参数
* @webviewBackground 设置打开的浏览器背景颜色,比如#ffffffff
* */
SlugWebAdapter.openIngameCommunityByUrl(Activity currentActivity, String url, int supportedOrientations, String qqAppid, String wxAppid, String className, boolean finishShouldSendMsgToGame, String webviewBackground)

1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 拼接用户参数

游戏客户端需在微社区首页 URL 上拼接以下参数:

参数名 描述 必须
openid 游戏的 openid 如果是 msdkv5 版本则必传
gameid_v5 msdkv5 分配的游戏的 gameid 如果是 msdkv5 版本则必传
areaid 账号类型:1(微信),2(QQ)
partition 区服 id,若无则传 0
platid 平台类型:0(iOS),1(Android)
roleid 角色 id
lng 用户当前位置:经度
lat 用户当前位置:纬度

示例一:

首页 URL:https://sy.qq.com/hyrzol/ingame/

拼接后 URL:https://sy.qq.com/hyrzol/ingame/?openid=xxx&gameid_v5=xxx&areaid=1&platid=0&partition=8195&roleid=2306687434798319382&lng=113.944527&lat=22.547869

示例二:

首页 URL:https://sy.qq.com/zhuoyao/ingame/?router=moment

拼接后 URL:https://sy.qq.com/zhuoyao/ingame/?router=moment&openid=xxx&gameid_v5=xxx&areaid=2&partition=0&platid=1&roleid=40520350780&lng=113.944527&lat=22.547869

# 从微社区跳转到游戏界面例子

# 游戏新建一个中转的 Activity,类似于:

package com.tencent.mobilegame;

public class IngameJumpActivity extends Activity
{
	@Override
    protected void onCreate(Bundle savedInstanceState)
	{
		String routeInfo = getIntent().getStringExtra("routeInfo"); /*获取H5页面传过来的参数,跳转到游戏界面*/
	}
}
1
2
3
4
5
6
7
8
9
10

# 在 AndroidManifest.xml 中配置:

<activity
	android:name="com.tencent.mobilegame.IngameJumpActivity"
	android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"
	android:screenOrientation="landscape">
</activity>
1
2
3
4
5

# 接入微社区时传递 className

...
intent.putExtra("className", "com.tencent.mobilegame.IngameJumpActivity");
...
startActivity(intent);
1
2
3
4