Android SDK环境配置

简介

本文介绍了在Android Studio环境下配置Miracle Games Android SDK。

开始之前需下载SDK,以及Demo。【下载

开发环境配置

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

repositories {
	flatDir {
		dirs 'libs'
	}
}

为dependencies域添加打包aar的配置

  1. mg_android_sdk_library_*.*.*.aar为SDK主资源包
  2. 其它依赖项为第三方登录所需依赖,游戏可根据当前项目需求进行选择配置,如当前游戏只需QQ和微信登录,则只需添加com.squareup.okhttp3:okhttp:3.12.12和com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.3.1配置即可:
标准库AndroidX库
	implementation fileTree(dir: 'libs', include: ['*.jar'])
	implementation 'com.android.support:support-v4:26.1.0'
	implementation 'com.android.support:appcompat-v7:26.1.0'      
	compile(name:'mg_android_sdk_1.3.8.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登录所需依赖
	implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'androidx.legacy:legacy-support-v4:1.0.0'
        implementation 'androidx.appcompat:appcompat:1.6.0'
        implementation(name:'mg_android_sdk_1.3.8.0.x', 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:21.2.0'//Google登录所需依赖

游戏AndroidManifest.xml的配置

在 Android11 及以上系统中,需要申请"查询已安装App"的权限,否则无法打开微信支付

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

<!-- 在 Android11 及以上系统中申请权限,否则无法打开微信支付 -->
<uses-permission
        android:name="android.permission.QUERY_ALL_PACKAGES"
        tools:ignore="QueryAllPackagesPermission" />
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name">
	<!-- 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>
</application>

配置微信登录所需WXEntryActivity类

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

生命周期接口

提示:在游戏各个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);
}