权限和组件

权限和组件

AndroidManifest.xml 中加入以下配置:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="您的应用包名">

    <!-- 权限声明 -->
    <!-- 访问网络状态-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
	 <!-- 多媒体相关 -->
	<uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!-- 在SDCard中创建与删除文件权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
	<!-- 外置存储存取权限 -->
	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- WindowsManager -->
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
   
    <!-- bugly -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <uses-permission android:name="com.android.vending.BILLING" />

    <application
        android:networkSecurityConfig="@xml/network_security_config"
        ...>
        <!-- 游戏对应ID:需要配置 -->
		<meta-data
            android:name="com.ngames.sdk.AppId"
            android:value="@string/ngames_app_id" />
        <!--Google 服务器ClientId-->
        <meta-data
            android:name="com.ngames.sdk.GoogleServerClientId"
            android:value="@string/google_server_client_id" />
        <!--悬浮窗:Discord网站-->
        <meta-data
            android:name="com.ngames.sdk.Discord"
            android:value="@string/pop_discord" />
		<!-- Facebook的应用ID:需要配置Facebook控制台获取 -->
        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" />
		<!-- Facebook的应用名称 -->
        <meta-data
            android:name="com.facebook.sdk.ApplicationName"
            android:value="@string/facebook_app_name" />
		<!-- Google服务的应用ID -->
        <meta-data
            android:name="com.google.android.gms.games.APP_ID"
            android:value="@string/app_id" />
		<!-- Google服务的应用版本 -->
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

		<!-- SDK登录模块需要集成的 -->
		<activity
            android:name="com.ngames.game321sdk.AccountManagementActivity"
            android:configChanges="fontScale|orientation|keyboardHidden|locale|navigation|screenSize|uiMode"
            android:screenOrientation="behind"
            android:theme="@style/ToolTipTheme"/>

        <activity
            android:name="com.ngames.game321sdk.ReplaceAccountActivity"
            android:configChanges="fontScale|orientation|keyboardHidden|locale|navigation|screenSize|uiMode"
            android:screenOrientation="behind"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />

        <activity
            android:name="com.ngames.game321sdk.LoginActivity"
            android:configChanges="fontScale|orientation|keyboardHidden|locale|navigation|screenSize|uiMode"
            android:screenOrientation="behind"
            android:theme="@style/ngames_dialog"
            android:windowSoftInputMode="stateAlwaysHidden|adjustPan" />

        <activity
            android:name="com.ngames.game321sdk.SupportActivity"
            android:configChanges="fontScale|orientation|keyboardHidden|locale|navigation|screenSize|uiMode"
            android:screenOrientation="behind"
            android:windowSoftInputMode="stateAlwaysHidden|adjustPan" />
			
        <!-- Facebook相关的 -->
		<!-- Facebook进程间通信provider,请配置string.xml中的facebook_provider_authorities -->
        <provider
            android:name="com.facebook.FacebookContentProvider"
            android:authorities="@string/facebook_provider_authorities"
            android:exported="true" />
        <activity
            android:name="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/facebook_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>
    </application>
</manifest>

以上AndroidManifest.xml 文件中配置的 <activity> 节点内必须配置为android:screenOrientation="behind"

请配置对应节点下面的内容

res/values 中配置string.xml, 配置如下 :

<!--游戏的ID,请将 ngames_game_id 替换为自己的游戏ID-->
<string name="ngames_app_id">ngames_game_id</string>
<!--Google 服务器ClientId-->
<string name="google_server_client_id">google_server_client_id</string>
<!--Facebook的应用ID, 请将 facebook_app_id 替换为自己的 Facebook应用ID-->
<string name="facebook_app_id">facebook_app_id</string>
<!--Facebook的应用协议:fb{Facebook应用ID}, 请将 123456 替换为自己的 Facebook应用ID-->
<string name="fb_login_protocol_scheme">fb123456</string>
<!--Facebook的应用名称,请将 app_name 替换为自己的应用名称 -->
<string name="facebook_app_name">app_name</string>
<!--Facebook的进程授权: com.facebook.app.FacebookContentProvider{Facebook应用ID}, 请将 123456 替换为自己的 Facebook应用ID -->
<string name="facebook_provider_authorities">com.facebook.app.FacebookContentProvider123456</string>
<!--Google游戏ID,请将 google_game_id 替换为自己的Google游戏ID-->
<string name="app_id">google_game_id</string>
<!--Google支付对应的PublicKey,请将 google_publickey 替换为自己的Google支付对应的PublicKey-->
<string name="base64EncodedPublicKey">google_publickey</string>
<!--悬浮框:Discord的URL-->
<string name="pop_discord">discord_url</string>

1.ngames_app_id:由项目经理配置

2.google_server_client_id:Google 服务器ClientId,用于谷歌登录(必须)

3.接入Facebook SDK必须配置:

(1)facebook_app_id

(2) fb_login_protocol_scheme

(3) facebook_app_name

(4) facebook_provider_authorities

4.接入Google sdk必须配置:

(1)app_id( Google游戏ID)

5.base64EncodedPublicKey,Google支付的KEY非必须,可以通过代码设置

6.pop_discord:悬浮框中Discord的URL

google_server_client_id

这个值在Google Console 后台查看 服务器客户端ID

复制配置文件到指定目录

在SDK文件下的 附件/res/xml目录下存在network_security_config.xml文件放到接入项目的/res/xml目录下。

将以下代码加入到AndroidManifest.xmlapplication节点下面:

android:networkSecurityConfig="@xml/network_security_config"

以上内容务必加上。因为使用targetSdkVersion的版本为28或者以上,Android 9.0的设备添加了网络权限的配置,如果不添加这个,HTTP协议将被拒绝访问,只能访问HTTPS。

Last updated