【九游sdk】Android渠道UCSdk实现用户登录会话标识

分类栏目:棋牌教程

268

前几天学接sdk,以前从来没有接触过这些东西。突然要接sdk,无从下手的感觉瞬间来袭,没有办法硬着头皮上了。

首先从uc开发者平台下载要接入的sdk文档。UC 优视游戏 SDK 开发参考说明书 。

打开下载的sdk目录,在客户端开发的demo里找到cocos2dx的接入sdk例子。

sdk接入2.jpeg

打开cocos2d-x-sdk-readme.txt可以查看sdk的目录说明。

目录说明

├── cocos2d-x-sdk-readme.txt //当前说明文件
├── UCSimpleGame_v3
│   ├── Classes //Cocos2dx的场景文件等
│   ├── proj.android //android demo工程
│   │   ├── AndroidManifest.xml
│   │   ├── jni
│   │   │   ├── Android.mk //可以参考,里面有注释
│   │   │   ├── Application.mk
│   │   │   └── hellocpp
│   │   │       └── main.cpp //测试库
│   │   ├── libs
│   │   │   ├── alipay_MobileSecSdk.jar
│   │   │   ├── alipay_sdk.jar
│   │   │   ├── alipay_utdid4all-1.0.4.jar //以上三个都是宝支付插件
│   │   │   ├── armeabi
│   │   │   └── UCGameSDK-3.5.3.1.jar //九游SDK接入包
│   │   └── src
│   │       ├── cn
│   │       │   └── uc
│   │       │       └── gamesdk
│   │       │           └── jni                     //九游SDK提供的cocos2d-x接入的java层代码,在uc.sdk/java目录下,接入时复制也好引用也好只要能找到就可以了
│   │       └── org
│   │           └── cocos2dx
│   │               └── cpp //demo文件,主入口
│   └── uc.sdk //包含九游SDK提供的java层与native层的接入代码
│       ├── java    //包含九游SDK提供给cocos2d-x的java层代码,与游戏的java层代码共同编译
│       │   └── cn
│       │       └── uc
│       │           └── gamesdk
│       │               └── jni
│       │                   ├── EnterUIListener.java
│       │                   ├── ExitListener.java
│       │                   ├── FloatMenuListener.java
│       │                   ├── GameUserLoginOperation.java
│       │                   ├── InitResultListener.java
│       │                   ├── JniCallback.java
│       │                   ├── LoginResultListener.java
│       │                   ├── LogoutListener.java
│       │                   ├── PayListener.java
│       │                   ├── UCGameSdk.java
│       │                   ├── UPointChargeListener.java
│       │                   └── UserCenterListener.java
│       └── jni //编译游戏的native库时需要引用的jni代码
│           ├── Android.mk
│           ├── Application.mk
│           ├── cn_uc_gamesdk_jni_JniCallback.cpp
│           ├── CUCGameSdk.cpp
│           ├── includes //九游头文件
│           │   ├── cn_uc_gamesdk_jni_JniCallback.h
│           │   ├── CUCGameSdk.h
│           │   ├── CUCStatusCode.h
│           │   ├── UCSdkCallback.h
│           │   └── UCSdk.h
│           ├── jsoncpp //jsoncpp库源码
│           ├── UCSdkCallback.cpp
│           └── UCSdk.cpp
└── UCSimpleGame_v3.apk //测试demo

文件中已经详细的说明了各文件的功能,也给出了详细的接入教程。

接入流程及注意事项:
1. 本demo基于cocos2d-x v3.7.1 构建,以下假设已经安装好cocos2d-x
2. 先把uc.sdk目录复制到游戏项目中,游戏的项目结构可以参考UCSimpleGame_v3目录(具体路径其实无太大关系,引用适当修改即可)
3. 修改proj.android,让项目引用uc.sdk/java中的代码(或者直接复制到 游戏项目/proj.android/src中)
4. 修改proj.android/jni/Android.mk,让其引用uc.sdk/jni中的代码(可以参考UCSimpleGame_v3/proj.android/jni/Android.mk中注释)
5. 将UCSimpleGame_v3/proj.android/libs中的几个库(支付宝3个,九游SDK一个)制到游戏项目中的proj.android/libs
6. 修改proj.android的AndroidManifest.xml文件
   权限:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
   声明activity:
        <activity
            android:name="cn.uc.gamesdk.SdkActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:windowSoftInputMode="adjustResize" >
            <intent-filter>
                <action android:name="cn.uc.gamesdk.sdkweb" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
   可以参考UCSimpleGame_v3/proj.android/AndroidManifest.xml
7. 修改proj.android/jni/Android.mk中关于cocos2d的路径,demo包中没有提供3.7.1的引擎文件,可以将引擎文件目录(如cocos2d-x-3.7.1)复制到游戏项目根目录中,与proj.android同级,并修改文件名为cocos2d
   或者将proj.android/jni/Android.mk中的关于cocos2d的目录引向引擎文件目录,如
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)
修改$(LOCAL_PATH)/../../cocos2d 指向你的引擎目录
8. 在游戏项目根目录中执行
cocos compile -p android
   即可可以开始构建(假如没cocos命令需要先行安装cocos2d-x)

该文件已经详细的说明了如何接入九游sdk了,重要的一步我们要实现sdk的初始化。

在项目文件夹/proj.android/src/org/cocos2dx/cpp/下的AppActivity.java文件中添加

01     protected void onCreate(Bundle savedInstanceState) {
02  
03         super.onCreate(savedInstanceState);
04         UCGameSdk.setCurrentActivity(this);
05  
06 //        JniCallback.nativeInitResultCallback(1, "OK");
07     }
08  
09     @Override
10     protected void onDestroy() {
11         System.out.println("============onDestroy=============");
12         UCGameSdk.destroyFloatButton();//销毁悬浮按钮
13         UCGameSdk.exitSDK();
14         super.onDestroy();
15     }

具体的功能,我们要调用uc.sdk文件里的功能文件。例如获取登录用户的会话标识sid。

sdk接入3.jpeg

我们只需要实现接口的调用即可。

sdk6.png

接口7.png

sdk.jpeg

第一次接触这玩意,有点混乱,这里就随随便便写了下,大致就是这个样子,今天正式踏入程序员行列,第一天上班加班到晚上九点,现在实在是太困了今晚大致这样,明天还要研究小米sdk,关于sdk的一些使用等我以后研究透了再来完善吧。。