fix: 修复双开分身游戏无法授权登录的问题

This commit is contained in:
叶子维
2024-12-19 17:03:24 +08:00
parent 21ab15a907
commit 92177ae5f2
3 changed files with 17 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import android.app.Dialog
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.os.UserHandle
import com.gh.common.util.CheckLoginUtils
import com.gh.common.util.DialogUtils
import com.gh.common.util.NewFlatLogUtils
@ -71,6 +72,11 @@ class AuthorizationActivity : ToolBarActivity() {
//授权token
private var mToken = ""
/**
* 游戏UID (适配双开/分身游戏)
*/
private var gameUid = -1
private var loadingDialog: Dialog? = null
override fun getLayoutId(): Int {
@ -160,6 +166,7 @@ class AuthorizationActivity : ToolBarActivity() {
mContent = uri.getQueryParameter(EntranceConsts.KEY_CONTENT) ?: ""
gameId = uri.getQueryParameter(EntranceConsts.KEY_GAME_ID) ?: ""
gameName = uri.getQueryParameter(EntranceConsts.KEY_GAME_NAME) ?: ""
gameUid = uri.getQueryParameter(EntranceConsts.KEY_UID)?.toIntOrNull() ?: -1
if (mRemotePkgName == null) {
finish()
return
@ -234,7 +241,11 @@ class AuthorizationActivity : ToolBarActivity() {
intent.putExtra(EntranceConsts.KEY_USER_ID, userId)
intent.putExtra(EntranceConsts.KEY_USER_NAME, username)
intent.putExtra(EntranceConsts.KEY_USER_AVATAR, userAvatar)
sendBroadcast(intent)
if (gameUid != -1 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
sendBroadcastAsUser(intent, UserHandle.getUserHandleForUid(gameUid))
} else {
sendBroadcast(intent)
}
logAuthResult(true)
backToLaunchApp()
finish()