1 Commits

Author SHA1 Message Date
max
e9dbdb3637 升级登录SDK版本、降低material版本为1.6.1(避免转apks失败) 2024-04-01 14:42:36 +08:00
2 changed files with 54 additions and 0 deletions

View File

@@ -4,11 +4,15 @@ android {
def gak = project.hasProperty("GOOGLE_BILLING_PUBLIC_KEY") ? GOOGLE_BILLING_PUBLIC_KEY :
"Define GOOGLE_BILLING_PUBLIC_KEY in gradle.properties. Or './gradlew -PGOOGLE_BILLING_PUBLIC_KEY=gak_value ... taskName'"
def gsci = project.hasProperty("GOOGLE_SERVER_CLIENT_ID") ? GOOGLE_SERVER_CLIENT_ID :
"Define GOOGLE_SERVER_CLIENT_ID in gradle.properties. Or 'gradle -PGOOGLE_SERVER_CLIENT_ID=gak_value ... taskName'"
println("GOOGLE_BILLING_PUBLIC_KEY:" + gak)
println("GOOGLE_SERVER_CLIENT_ID:" + gsci)
defaultConfig {
buildConfigField "String", "GOOGLE_BILLING_PUBLIC_KEY", "\"$gak\""
buildConfigField "String", "GOOGLE_SERVER_CLIENT_ID", "\"$gsci\""
}
}
@@ -19,6 +23,9 @@ kapt {
}
dependencies {
// google登录
implementation 'com.google.android.gms:play-services-auth:21.0.0'
// googleplay内购
implementation 'com.google.android.gms:play-services-wallet:19.2.1'
implementation 'com.android.billingclient:billing:6.0.1'

View File

@@ -3,19 +3,66 @@ package com.example.module_google.login
import android.app.Activity
import android.content.Intent
import com.example.module_base.support.login.ILoginService
import com.example.module_base.support.login.LoginSDKException
import com.example.module_base.support.login.PlatformInfo
import com.example.module_google.BuildConfig
import com.google.android.gms.auth.api.signin.GoogleSignIn
import com.google.android.gms.auth.api.signin.GoogleSignInClient
import com.google.android.gms.auth.api.signin.GoogleSignInOptions
import com.google.android.gms.common.api.ApiException
import kotlin.random.Random
/**
* Created by Max on 2023/11/22 15:59
* Desc:Google登录
**/
class GoogleLoginService : ILoginService {
private val requestCode = Random.nextInt(10000, 20000)
private var listener: ILoginService.Listener? = null
private var googleSignInOptions: GoogleSignInOptions =
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestProfile()
.requestIdToken(BuildConfig.GOOGLE_SERVER_CLIENT_ID)
.build()
private var googleSignInClient: GoogleSignInClient? = null
override fun login(activity: Activity, listener: ILoginService.Listener) {
this.listener = listener
if (this.googleSignInClient == null) {
this.googleSignInClient =
GoogleSignIn.getClient(activity.applicationContext, googleSignInOptions)
}
activity.startActivityForResult(
googleSignInClient!!.signInIntent,
requestCode
)
}
override fun logout() {
googleSignInClient?.signOut()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == this.requestCode) {
val task = GoogleSignIn.getSignedInAccountFromIntent(data)
try {
val account = task.getResult(ApiException::class.java)
val info = PlatformInfo(
id = account!!.id!!,
name = account.displayName,
gender = null,
avatar = account.photoUrl?.toString()
)
listener?.onSuccess(info)
} catch (e: ApiException) {
listener?.onFailure(LoginSDKException(e.statusCode, e))
} catch (e: Exception) {
listener?.onFailure(LoginSDKException(-100))
}
}
}
}