Android SDK初始化

简介

本文介绍了集成Miracle Games Android SDK 在AndroidStudio下环境配置及SDK初始化接口调用。 开始之前需下载SDK所需依赖资源,mg_android_sdk_library_1.3.0.aar模块。【下载

该版本SDK集成详细配置及接口调用可参考Demo【下载

开发环境配置

将mg_android_sdk_library_1.3.0.aar拷贝到游戏工程的libs目录下并修改游戏Module的build.gradle文件,添加repositories域:(如果已经存在了repositories域,可添加到已存在的域中即可)

    repositories {
        flatDir {
            dirs 'libs'
        }
    }

为dependencies域添加打包aar的配置

mg_android_sdk_library_1.3.0.aar为SDK主资源包其它依赖项为第三方登录所需依赖,游戏可根据当前项目需求进行选择配置,如当前游戏只需QQ微信登录添加SDK主资源包依赖后另外添加com.squareup.okhttp3:okhttp:3.12.12和com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.3.1配置即可:

    compile(name:'mg_android_sdk_library_1.3.0', ext:'aar') //MG_SDK工程资源包
    implementation 'com.squareup.okhttp3:okhttp:3.12.12' //QQ登录网络请求所需
    api 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.3.1' //微信登录所需依赖
    implementation 'com.facebook.android:facebook-android-sdk:[4,5)' //Facebook登录所需依赖
    implementation 'com.google.android.gms:play-services-auth:12.0.1' //Google登录所需依赖

游戏AndroidManifest.xml的配置

在<application></application>里面加入Activity声明:(注:除MG SDK主工程声明配置以外其他第三方登录配置均为可选配置,游戏可根据当前项目需求进行选择配置)

        <!-- MG用户中心所需activity -->
        <activity
            android:name="com.mg.usercentersdk.widget.WrapperActivity"
            android:configChanges="fontScale|orientation|keyboardHidden|locale|navigation|screenSize|uiMode"
            android:excludeFromRecents="true"
            android:hardwareAccelerated="false"
            android:launchMode="standard"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
            android:windowSoftInputMode="stateAlwaysHidden|adjustResize" >
        </activity>
        <!-- MG用户中心AppKey -->
        <meta-data
            android:name="AppKey"
            android:value="28F92A14A7" >
        </meta-data>
        <!-- MG用户中心渠道号 -->
        <meta-data
            android:name="ChannelID"
            android:value="mg" > <!--不同渠道出包配置-->
        </meta-data>
        <!-- 微信登录 所需配置,可根据项目需求选择配置 -->
        <activity
            android:name="com.mg.game.jqyct.wxapi.WXEntryActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:exported="true"
            android:launchMode="singleTop">
        </activity>
        <!-- 微信登录所需参数 -->
        <meta-data
            android:name="wx_appid"
            android:value="wx1ef681931f302080" >
        </meta-data>
        <meta-data
            android:name="wx_secret"
            android:value="720489607754132afb1481df767f5009" >
        </meta-data>
        <!-- QQ登录 所需配置,可根据项目需求选择配置-->
        <activity
            android:name="com.tencent.tauth.AuthActivity"
            android:configChanges="orientation|keyboardHidden"
            android:noHistory="true"
            android:launchMode="singleTask" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="tencent101946544" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:screenOrientation="behind"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <meta-data
            android:name="qq_appid"
            android:value="tencent101946544" >
        </meta-data>
        <!-- Facebook 所需Activity,可根据项目需求选择配置-->
        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id"/>
        <activity android:name="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name" />
        <activity
            android:name="com.facebook.CustomTabActivity"
            android:exported="true">
            <intent-filter><action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="@string/fb_login_protocol_scheme" />
            </intent-filter>
        </activity>
        <!-- Google登录 所需配置,可根据项目需求选择配置-->
        <!-- Google 客户端ID -->
        <meta-data
            android:name="SERVER_CLIENT_ID"
            android:value="545888706329-mtpbbnjn1h8uaeb3lt3hgcot5f118jce.apps.googleusercontent.com" >
        </meta-data>

配置微信登录所需WXEntryActivity类

如游戏需要微信登录功能需在你的包名相应目录下新建一个 wxapi 目录,并复制Demo工程下WXEntryActivity类到该目录。(例如应用程序的包名为 com.mg.game.jqyct,则新添加的类如下图所示)

SDK初始化

在接入Android SDK之前,首先需要进行SDK初始化,初始化完成后才可以配合后台系统使用SDK的全部功能。一般情况下,在进入游戏后即进行SDK初始化。

    //this 为Android Activity对象
	MGSdkPlatform.getInstance().init(this, new MGInitListener() {
		@Override
		public void onSuccess(String msg) {
			Log.d(TAG, "初始化成功;" + "msg===" + msg);
		}
		@Override
		public void onFailed(String msg) {
			Log.d(TAG, "初始化失败;" + "msg===" + msg);
		}
	});

生命周期接口

提示:在游戏各个Activity生命周期中调用SDK生命周期接口。

	public void onStart() {
		super.onStart();
		MGSdkPlatform.getInstance().onStart();
	}
	public void onResume() {
		MGSdkPlatform.getInstance().onResume();
	}
	public void onPause() {
		super.onPause();
		MGSdkPlatform.getInstance().onPause();
	}
	public void onStop() {
		super.onStop();
		MGSdkPlatform.getInstance().onStop();
	}
	public void onRestart() {
		super.onRestart();
		MGSdkPlatform.getInstance().onRestart();
	}
	public void onDestroy() {
		super.onDestroy();
		MGSdkPlatform.getInstance().onDestroy();
	}
	public void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		MGSdkPlatform.getInstance().onActivityResult(requestCode, resultCode, data);
	}

没有初始化成功的错误可能如下