Android
本指南提供了在 Hive SDK Android 中设置身份验证功能的说明。
添加功能¶
您需要添加与模块级 build.gradle 文件相对应的外部库。仅添加您将使用的身份验证功能。
以下是將外部庫添加到模塊級別的 build.gradle 文件的示例。
dependencies {
// Feature-specific settings. Add only the features you are using.
// AuthV4 Device Management
implementation "com.com2us.android.hive:hive-authv4-device-management"
// AuthV4 Google In-App Update
implementation "com.com2us.android.hive:hive-authv4-google-inappupdate"
// AuthV4 Google reCAPTCHA
implementation "com.com2us.android.hive:hive-authv4-google-recaptcha"
// AuthV4 Real Name Verification (China)
implementation "com.com2us.android.hive:hive-authv4-real-name-verification"
}
添加身份提供者¶
將外部庫添加到模塊級別的 build.gradle 文件中。僅添加您將使用的 IdP。
以下是將外部庫添加到模組級 build.gradle 文件的示例。可以在不添加任何庫的情況下使用 訪客登錄 功能。
dependencies {
// IdP-specific settings. Add only the IdPs you are using.
// Apple Login
implementation "com.com2us.android.hive:hive-authv4-provider-apple-signin"
// Facebook Login
implementation "com.com2us.android.hive:hive-authv4-provider-facebook"
// Google Play Games Login
// `hive-authv4-provider-google-playgames` includes the `play-service-games-v2` library.
implementation "com.com2us.android.hive:hive-authv4-provider-google-playgames"
// Google Login
// Google Play Games Login and Google Login are different login methods.
implementation "com.com2us.android.hive:hive-authv4-provider-google-signin"
// Membership Login
implementation "com.com2us.android.hive:hive-authv4-provider-hive-membership"
// Huawei Login
implementation "com.com2us.android.hive:hive-authv4-provider-huawei"
// LINE Login
// To apply the LINE library, minSdkVersion 24 or higher is required.
implementation "com.com2us.android.hive:hive-authv4-provider-line"
// QQ Login
implementation "com.com2us.android.hive:hive-authv4-provider-qq"
// Steam Login
implementation "com.com2us.android.hive:hive-authv4-provider-steam"
// VK library requires targetSdkVersion 32 or higher.
implementation "com.com2us.android.hive:hive-authv4-provider-vk"
// WeChat Login
implementation "com.com2us.android.hive:hive-authv4-provider-wechat"
// Weverse Login
implementation
// X Login
implementation "com.com2us.android.hive:hive-authv4-provider-x"
// Telegram Login
implementation "com.com2us.android.hive:hive-authv4-provider-telegram"
// Xiaomi Login
implementation "com.com2us.android.hive:hive-authv4-provider-xiaomi-oauth"
// animateGO 登入
implementation "com.com2us.android.hive:hive-authv4-provider-animatego-oauth"
// DMM Login
implementation "com.com2us.android.hive:hive-authv4-provider-dmm"
}
在hive_config.xml中輸入每個IdP的鍵值¶
輸入從每個 IdP 控制台獲得的鍵值於 hive_config.xml。有關更多詳細信息,請參閱 身份驗證先決條件。
由 IdP 提供的附加設定¶
根據身份提供者(IdP),需要額外的配置。
Google Sign-in IdP 設定¶
Note
從 Hive SDK 26.4.0 開始,Google 登入可選擇 Google SignIn 或 Google Credential Manager 方式。
- hive-authv4-provider-google-signin: 使用 Play Services 函式庫處理 Google 登入。
- hive-authv4-provider-google-credential-signin: 使用 Credential Manager 函式庫處理 Google 登入。
- 需要 Gradle 8.x 或更高版本
既有基於 Play Services 函式庫的 Google 登入已於 2024 年 9 月棄用 (Deprecated),原計劃於 2025 年移除。但目前 Google 仍持續支援該函式庫。
為了穩定的服務營運,Google 建議從 Play Services 遷移至 Credential Manager。
Hive SDK 同時支援 Play Services 和 Credential Manager 兩種方式。Google 確定移除 Play Services 的計劃後,我們將透過 Hive SDK 更新進行說明。
Google Play 遊戲登入 IdP 設定¶
要使用 Google Play 遊戲登入,請按以下方式設置。
AndroidManifest.xml 設定¶
這是 Google Play 服務的配置。它是 Google Play 遊戲登錄設置 的必要值。
<manifest>
<application>
<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/>
</application>
</manifest>
Facebook IdP 配置¶
要使用 Facebook 登入,請根據以下指示配置 AndroidManifest.xml。
首先,设置 FacebookContentProvider 以便在游戏应用中分享链接、图片或视频。通过将 Facebook AppID 附加到 com.facebook.app.FacebookContentProvider 作为 android:authorities 属性的值来输入 Facebook AppID。Facebook AppID 可以在 Facebook 控制台 中找到,该控制台用于注册游戏应用的应用 ID。
範例:當 FacebookAppID 為 123456789
<provider android:authorities="com.facebook.app.FacebookContentProvider123456789"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
Warning
要啟用Facebook分享,聲明FacebookContentProvider權限將防止市場特定的Android版本(例如,Google Play商店,ONE商店)同時安裝。
如果您不使用Facebook分享,請參考故障排除指南以刪除FacebookContentProvider權限的聲明。
添加 Facebook AppId 和客戶端令牌配置的設置(Facebook v13 及以上版本所需)。有關 Facebook 客戶端令牌,請參閱 Facebook 控制台 中的 應用設置 > 高級設置。
範例:當 FacebookAppID 為 123456789
範例:當 Facebook 客戶端令牌為 123456789
Note
您也可以在string.xml文件中设置Facebook AppId和客户端令牌。在这种情况下,设置android:value时不需要fb前缀。有关更多详细信息,请查看这里。
QQ/WeChat IdP 配置¶
如果您支持 QQ 或 WeChat IdP,请申请以下附加内容。
在模組級別的build.gradle文件中設置libs文件夾的依賴。
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation fileTree(include: ['*.aar'], dir: 'libs')
}
從 SDK 發行版本的模組級 libs 資料夾(.aar/.jar) 添加外部庫。發行版本中包含的外部庫列表如下。
- mid-sdk-2.10.jar (當支持 QQ IdP 登入時,請添加此文件)
- mta-sdk-2.0.0.jar (當支持 QQ 或 WeChat IdP 登入時,請添加此文件)
- open_sdk_3.5.4.11_r3f56456_lite.jar (當支持 QQ IdP 登入時,請添加此文件)
華為 IdP 配置¶
- 添加agconnect-services.json
- 将从华为控制台下载的agconnect-services.json文件添加到项目文件夹中。
- 配置项目 - build.gradle 文件
- 添加 AppGallery Connect 插件和 Maven 地址。
buildscript { repositories { google() jcenter() // 华为 HMS Core SDK. maven {url 'https://developer.huawei.com/repo/'} } dependencies { ... // 华为 AppGallery Connect 插件 classpath 'com.huawei.agconnect:agcp:1.9.1.301' } } allprojects { repositories { google() jcenter() /// 华为 HMS Core SDK. maven {url 'https://developer.huawei.com/repo/'} } }
- 添加 AppGallery Connect 插件和 Maven 地址。
- 配置应用 - build.gradle 文件
- 添加华为身份验证库和插件。
VK IdP 配置¶
要使用 VK 登录,请按如下方式进行设置。
androidmanifest.xml 設定¶
需要的设置 VK 登录重定向。
<manifest>
<application>
<activity
android:name="com.hive.authv4.provider.vk.HiveProviderVkActivity"
android:configChanges="colorMode|density|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|locale|fontScale|layoutDirection"
android:exported="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="vk${vkClientId}" />
<data android:host="vk.com" />
</intent-filter>
</activity>
</application>
</manifest>
小米 IdP 配置¶
要使用小米登录,您需要配置从小米控制台获得的XiaomiAppId和XiaomiAppKey。
AndroidManifest.xml 設定¶
<meta-data
android:name="miGameAppId"
android:value="${xiaomiAppId}" />
<meta-data
android:name="miGameAppKey"
android:value="${xiaomiAppKey}" />
<!-- user OAID -->
<meta-data
android:name="miGameEnhance"
android:value="false" />
Settings.gradle maven 配置¶
maven {
url "https://repos.xiaomi.com/maven"
credentials {
username 'mi-gamesdk'
password 'AKCp8mYeLuhuaGj6bK1XK7t2w4CsPuGwg6GpQdZ9cat7K59y5sD7Tx3dHjJcFrBGj3TQ4vi7g'
}
}
Build.gradle libs 配置¶
dependencies {
// hive-china-xiaomi-wrapper-xxxxxxxx.aar
implementation fileTree(include: ['*.aar'], dir: 'libs')
}
animate Games Online IdP 設定¶
Note
animate Games Online 登入僅支援 Android 平台。
若要使用 animate Games Online 登入,請依下列方式進行設定。
hive_config.xml 設定¶
將 animate Games Online 登入所需的 clientId 填入 hive_config.xml。需要設定的金鑰清單請參閱 使用 animate GO 登入。
Callback URL / Redirect URI 設定¶
若要讓 animate Games Online 登入回呼正常運作,必須在 animate Games Online 開發者主控台中註冊 Callback URL 與 Redirect URI。詳細內容請參閱 animate Games Online Callback URL / Redirect URI 設定。
新增 AAR 函式庫¶
在模組層級的 build.gradle 檔案中設定 libs 資料夾的相依性。
將 SDK 發行版本中包含的外部函式庫(.aar)新增至模組層級的 libs 資料夾。支援 animate Games Online IdP 登入與計費功能時,需要下列檔案。
- sdk-XXXXXXXXXXXXXXXXXXXXXXX.aar
- 範例:sdk-bf62685719935e68ec4100c0d51aa469.aar
AndroidManifest.xml 設定¶
若要讓應用程式接收 animate Games Online 登入回呼,請在處理登入回呼的 Activity 的 intent-filter 中新增 host hive 與 game。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- 新增 host,避免收到 animateGO 登入回呼時執行選擇應用程式清單重複顯示 -->
<data android:scheme="${applicationId}" />
<data android:host="hive" />
<data android:host="game" />
</intent-filter>
DMM IdP 設定¶
Note
Android 版 DMM 驗證會透過 DMM Games Store 應用程式將驗證資訊註冊到 DMM 伺服器後使用,並以 Hive AuthV4 的 IdP provider(hive:authv4:provider:dmm)形式提供。
Android DMM 登入與 Google、Apple 等其他 IdP 相同,皆透過呼叫 AuthV4.signIn(ProviderType.DMM) 使用,DMM SDK 的初始化、登入、簽章驗證串接皆由 provider 在內部處理。
取得 DMM 憑證¶
請先在 DMM GAMES 開發者主控台登錄套件名稱、應用程式資訊等 Android 應用程式資訊,然後再取得下列憑證。DMM 驗證使用 OpenSocial 系列與 AuthSDK 系列兩種憑證。
| 分類 | 金鑰 | 說明 |
|---|---|---|
| OpenSocial | appId | OpenSocial 應用程式 ID。同時也是 makeRequest 的 opensocial_app_id 值,並用於簽章驗證 |
| OpenSocial | consumerKey、consumerSecret | 用於簽章的 consumer 憑證。註冊應用程式後可在 DMM 主控台確認 |
| AuthSDK | clientId、clientSecret、secretKey | OAuth2 登入憑證。由裝置端的 DMM AuthSDK 使用,不會傳送至 Hive 伺服器。須向 DMM 另行申請後取得 |
| AuthSDK | redirectUri | OAuth2 回呼 scheme。由 DMM 綁定至 clientId 後,於申請時一併提供 |
設定 hive_config.xml 的 DMM 區塊¶
將取得的憑證填入 hive_config.xml。需要設定的金鑰清單請參閱 使用 DMM 登入。
設定 redirectUri(scheme)¶
redirect_uri 是類似 comXXX://auth 的自訂 scheme,必須在申請 clientId 時一併提交並取得 DMM 驗證後才能使用。由於此值會綁定至 clientId,若使用未經驗證的值,登入時會發生 DMM 錯誤 E210019 (error_redirect_uri_unavailable)。
在 build.gradle 中注入 redirect scheme。
設定 Gradle 相依性與存放庫¶
在根目錄 settings.gradle 的 dependencyResolutionManagement { repositories } 中新增 DMM Maven 存放庫。由於 Gradle 存放庫宣告不具傳遞性,若未在應用程式建置中宣告,將導致 DMM SDK(link-id-sdk、AuthSDK)解析失敗。
在 Config Editor 中設定 Client 憑證¶
在 Config Editor 中指定 Client 憑證。
| 屬性 | 必要 | 說明 |
|---|---|---|
appId | O | 正式環境 OpenSocial 應用程式 ID |
consumerKey / consumerSecret | O | 正式環境 consumer 簽章憑證 |
clientId / clientSecret / secretKey | O | AuthSDK OAuth2 登入憑證 |
redirectUri | O | OAuth2 redirect_uri。須與在 DMM 註冊的值相同 |

