android - QuickMatch onJoinedRoom 出现错误 2
问题描述
我正在尝试通过快速匹配进行连接。我启用了一切。API 已启用,调试密钥和生产密钥已添加到 Google API 控制台的 Oauth2 列表中。
启用 Real-Multiplayer 并发布游戏服务。我正在我的游戏中尝试一些示例代码,另外我正在签署用户。
我收到错误 2onJoinedRoom
我正在尝试使用以下方式登录:
public void signInSilently() {
mGoogleSignInClient.silentSignIn().addOnCompleteListener(getActivity(),
new OnCompleteListener<GoogleSignInAccount>() {
@Override
public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
if (task.isSuccessful()) {
//onConnected(task.getResult());
Utils.logDebug("OnlineFragment.startSignInIntent()","onComplete, isSuccessful.");
onConnected(task.getResult());
} else {
startSignInIntent();
Utils.logDebug("OnlineFragment.startSignInIntent()","onComplete, NOT isSuccessful.");
task.getException().printStackTrace();
}
}
});
}
它始终处于连接状态
private void onConnected(GoogleSignInAccount googleSignInAccount){
mRealTimeMultiplayerClient = Games.getRealTimeMultiplayerClient(getActivity(), googleSignInAccount);
startQuickGame();
}
连接后,我开始新的快速匹配:
private void startQuickGame() {
if(getActivity() != null){
// auto-match criteria to invite one random automatch opponent.
// You can also specify more opponents (up to 3).
// TODO: Make the first param's value 2
Bundle autoMatchCriteria = RoomConfig.createAutoMatchCriteria(1, 1, ROLE_ANY);
// build the room config:
RoomConfig roomConfig =
RoomConfig.builder(mRoomUpdateCallback)
.setOnMessageReceivedListener(mMessageReceivedHandler)
.setRoomStatusUpdateCallback(mRoomStatusCallbackHandler)
.setAutoMatchCriteria(autoMatchCriteria)
.build();
// prevent screen from sleeping during handshake
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// Save the roomConfig so we can use it if we call leave().
mJoinedRoomConfig = roomConfig;
// create room:
mRealTimeMultiplayerClient.create(mJoinedRoomConfig);
}
}
然后我在侦听器中收到错误(仅包含侦听器中提到的函数,其他函数没有被调用)
private RoomUpdateCallback mRoomUpdateCallback = new RoomUpdateCallback() {
@Override
public void onRoomCreated(int code, @Nullable Room room) {
// Update UI and internal state based on room updates.
if(room != null)
Log.d("SignInGoogleOnlineFrag", "Room isn't null");
if(code == GamesCallbackStatusCodes.OK)
Log.d("SignInGoogleOnlineFrag", "OK");
if (code == GamesCallbackStatusCodes.OK && room != null) {
Log.d("SignInGoogleOnlineFrag", "Room " + room.getRoomId() + " created.");
} else {
Log.w("SignInGoogleOnlineFrag", "Error creating room: " + code);
// let screen go to sleep
getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}
解决方案
推荐阅读
- opencv - 如何将 rgb 视频转换为灰度并保存?
- javascript - 无法使用 React Router Dom 寻址特定 URL
- gcloud - 为什么 gcloud app deploy 将 0 个文件上传到谷歌云存储?
- json - 使用 JSONEncoder 转换为 JSON 时 Swift 保持秩序
- azure - 如何在 Graph API 中按 lastModifiedDateTime 或 lastModifiedBy 用户 displayName 排序?
- flutter - 如何使用 MediaQuery 响应我的颤振应用程序?
- microk8s - MicroK8s Metallb 调用服务时出现随机错误
- autohotkey - 如何使用 AutoHotKey 最小化和恢复活动窗口?
- bash - bash 脚本在 grep -w -c 之后不会继续
- hyperledger-fabric - Fabric sdk go 应用程序无法连接到 SaveChannel 上的 orderer