# **接入流程**
*****
## **資源引入**
1. 將 libs 目錄下 jar包、aar包導入到項目中
2. 將\_x.x.x.x.so 放在游戲的 assets/gc\_plugins/目錄下(此目錄下只能有一個 so 文件,切勿更改我方提供 so 包的命名)
如有疑問,可參照 demo
## **配置AndroidMainfest**
1. 參數配置
```
<!--appkey-->
<meta-data
android:name="GC_APPKEY"
android:value="" />
<!--渠道id-->
<meta-data
android:name="GC_CPID"
android:value="" />
<!--aeskey-->
<meta-data
android:name="GC_AESKEY"
android:value="" />
<!--環境-->
<meta-data
android:name="GC_ENVIRONMENT"
android:value="1" />
<!--閃屏頁-->
<meta-data
android:name="GC_SPLASHPAGE"
android:value="1" />
<!--游戲id-->
<meta-data
android:name="GC_GAMEID"
android:value="" />
<!--平臺號-->
<meta-data
android:name="GC_PLATFORM"
android:value="" />
<!--頭條appid-->
<meta-data
android:name="TOUTIAO_APPID"
android:value="" />
<!--熱云appkey-->
<meta-data
android:name="TRACKINGIO_APPKEY"
android:value="" />
<!--buglyAppid-->
<meta-data
android:name="BUGLY_APPID"
android:value="" />
<meta-data
android:name="android.webkit.WebView.EnableSafeBrowsing"
android:value="false" />
<meta-data
android:name="android.max_aspect"
android:value="2.2" />
~~~
```
2. 權限配置
```
~~~
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
~~~
```
3. activity和service聲明
```
<activity
android:name="com.ryg.dynamicload.DLProxyFragmentActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent">
<intent-filter>
<action android:name="com.ryg.dynamicload.proxy.fragmentactivity.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<service android:name="com.ryg.dynamicload.DLProxyService" />
```
## **必須調用的API**
Note:所有api都通過GCManager單例類來調用
### **初始化**
該方法必須在游戲啟動Activity的onCreate方法中調用
```
GCManager.getInstance().init(this, new GCInitListener() {
@Override
public void onInitSuccess() {
//初始化成功
}
@Override
public void onInitFail() {
//初始化失敗
}
@Override
public void onLoginSuccess(String s) {
//登錄成功回調
}
@Override
public void onLoginFail(String s) {
//登錄失敗
}
@Override
public void onLogout() {
//cp需要把游戲賬號退出,跳轉到登錄界面
}
@Override
public void onExit() {
finish();
System.exit(0);
}
});
```
### **頁面時長統計**
Note: 目前提供了對每個頁面(Activity)停留時長的統計,每個頁面的的停留時間是從 onResume 生命周期開始計算,到 onPause 結束。為了完成時長統計,接入方需要在每個 Activity 相應生命 周期方法中調用我們相對應的 API。
在 Activity#onResume()調用
```
GCManager.getInstance().onResume (activity)
```
在 Activity#onPause()調用
```
GCManager.getInstance().onPause(activity)
```
### **登錄**
```
GCManager.getInstance().login();
```
### **支付**
```
GCManager.getInstance().recharge(amount,
"倚天劍", "12345678",
"http://mock.youximao.cn/mockjsdata/11/sdk/notify",
"一區張無忌下的訂單",
"201712091622",
"testRoleName",
"testRoleServerName","10001",
new GameCatSDKListener() {
@Override
public void onSuccess(JSONObject jsonObject) {
}
@Override
public void onFail(String s) {
}
});
```
| 參數名 | 參數類型 | 參數說明 |
| --- | --- | --- |
| amount | double | 金額,最高限額為 99 萬, 最低為 1,必須為整數。 (測試時 可輸入 0.1) |
| description | String | 商品介紹 |
| codeNo | String | 訂單編號(用于對賬跟發貨憑證,必 須唯一|
| notifyUrl | String | 發貨回調地址(通知游戲端發貨的地 址) |
|extend | String | 游戲方的透傳參數(傳 進什么游戲貓都會原數 據返回,建議用 jsonString) |
| roleId | String | 角色ID |
| roleName | String | 玩家角色名稱 |
| roleServerName | String | 玩家所在服務器的名稱|
| roleServerId | String | 玩家所在服務器的ID |
### **同步角色信息**
在創建角色、進入游戲、昵稱修改、角色升級、退出游戲時調用
```
GCManager.getInstance().synRoleInfo("testRoleName", "testRoleServerName", "testRoleCamp", "10", "1111111","10001");
```
| 參數名 | 參數類型 | 參數說明 |
| --- | --- | --- |
| roleName | String | 玩家角色名稱 |
| roleServerName | String | 玩家所在服務器的名稱|
| roleCamp | String | 角色陣營 |
| roleGrade | String | 角色等級 |
| roleId | String | 角色ID |
| roleServerId | String | 玩家所在服務器的ID |
### **退出游戲**
```
GCManager.getInstance().exit();
```
### **生命周期**
接入游戲 Activity 的 OnActivityResult 參數同游戲 activity 的 onActivityResult 方法參數
```
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
GCManager.getInstance().onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
```
接入游戲 Activity的onDestroy參數同游戲 activity 的 onActivityResult 方法參數
```
@Override
protected void onDestroy() {
GCManager.getInstance().onDestroy(this);
super.onDestroy();
}
```
### **bugly接入**
Note:如果游戲中已經接入 bugly,則忽略以下操作,直接添加我們的賬號(3227047104、2280031330)到貴方bugly 后臺對應這款游戲下即可。
1. 游戲如果沒有自己的 Application,需要配置 YXMApplication, android:name="com.ryg.sdk.YXMApplication"
```
<application
android:name="com.ryg.sdk.YXMApplication"
android:allowBackup="true"
android:icon="@drawable/youximao_icon"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
```
2. 游戲有自己的 Application,則需要在游戲 Application 的 onCreate 中調用
```
GCManager.getInstance().initBugly(this);
```