Android SDKによるログイン機能の実装方法
ログイン機能は2つの処理に分けられます。
1.ログイン画面を表示する処理
2.ログイン結果を受け取る処理
ログイン画面を表示する処理
1.HuaweiIdAuthParamsHelperでログインパラメータを生成します。
2.HuaweiIdAuthManager.getService()でHUAWEI ID認証サービスを取得します。
3.startActivityForResult()でHUAWEI IDのログイン画面(別Activity)を開きます。
HmsHuaweiIdLogic.kt
companion object {
private const val REQUEST_CODE_SIGN_IN_AUTHORIZATION_CODE = 1000
}
private var authManager: HuaweiIdAuthService? = null
override fun signIn(activity: Activity) {
val param = HuaweiIdAuthParamsHelper(HuaweiIdAuthParams.DEFAULT_AUTH_REQUEST_PARAM)
.setAuthorizationCode()
.createParams()
authManager = HuaweiIdAuthManager.getService(activity.applicationContext, param)
authManager?.let {
activity.startActivityForResult(it.signInIntent,
REQUEST_CODE_SIGN_IN_AUTHORIZATION_CODE
)
}
}
ログイン結果を受け取る処理
1.ログイン結果はonActivityResult()を通して返ってきます。
2.dataを直接に使うことができません。HuaweiIdAuthManager.parseAuthResultFromIntent()で変換する必要があります。
3.変換後、まずisSuccessfulをチェックしなければなりません。
4.実際の変換結果はresultに入ってます。
HmsHuaweiIdLogic.kt
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
REQUEST_CODE_SIGN_IN_AUTHORIZATION_CODE -> {
val authHuaweiIdTask = HuaweiIdAuthManager.parseAuthResultFromIntent(data)
if (authHuaweiIdTask.isSuccessful) {
with (authHuaweiIdTask.result) {
// ユーザーID = this.unionId
// プロフィール画像 = this.avatarUriString
// ユーザー名 = this.displayName
}
} else {
// エラー処理
// エラーコード = (authHuaweiIdTask.exception as ApiException).statusCode
}
}
}
}
シリーズ
- Android端末におけるHUAWEI IDログイン機能の詳細実装手順1-ソリューションの概要
- Android端末におけるHUAWEI IDログイン機能の詳細実装手順2-実装準備
- Android端末におけるHUAWEI IDログイン機能の詳細実装手順3-HMS判定
- Android端末におけるHUAWEI IDログイン機能の詳細実装手順4-HMS端末でログイン
- Android端末におけるHUAWEI IDログイン機能の詳細実装手順5-HMS端末でログアウト
- Android端末におけるHUAWEI IDログイン機能の詳細実装手順6-HMS端末で権限取り消し
- Android端末におけるHUAWEI IDログイン機能の詳細実装手順7-GMS端末でログイン1
- Android端末におけるHUAWEI IDログイン機能の詳細実装手順8-GMS端末でログイン2
- Android端末におけるHUAWEI IDログイン機能の詳細実装手順9-GMS端末でログアウト
- Android端末におけるHUAWEI IDログイン機能の詳細実装手順10-GMS端末で権限取り消し
GitHub
参考
- HMS:https://developer.huawei.com/consumer/jp/
- HMS Account Kitの紹介:https://developer.huawei.com/consumer/jp/doc/overview/HMS
- HMS Account Kitのドキュメント:https://developer.huawei.com/consumer/jp/doc/development/HMSCore-Guides-V5/introduction-0000001050048870-V5
- Huawei Developers:https://forums.developer.huawei.com/forumPortal/en/home
- Facebook Huawei Developersグループ:https://www.facebook.com/Huaweidevs/