【发布时间】:2014-12-08 08:25:00
【问题描述】:
我有一个带有 google play 服务的应用程序(回合制游戏),但我的主要活动没有 google play 连接。
Google Play 连接处于单独的活动中。我不想强迫我的用户连接,如果他们不想的话,我不能把所有相关的东西放在我的主要活动中。
我的问题是:
- 有人给我发邀请
- 我收到通知
- 通知会将我重定向到默认的 google play 活动以接受此邀请
- 我接受并重定向到我的应用的主要活动。
- 接受邀请后如何检测重定向?
因为我的主要活动与 Google Play 无关,所以我不能只使用
@Override
public void onConnected(Bundle connectionHint) {
if (connectionHint != null)
mMatch = connectionHint.getParcelable(Multiplayer.EXTRA_TURN_BASED_MATCH);
}
我在不同的设备上得到了不同的意图,但我所有的设备都有 flg=0x14000000
意图{act=android.intent.action.MAIN flg=0x14000000 cmp=com.virag.game/.Activities.MainActivity }
所以现在我在我的主要活动中使用它并且它有效:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent data = getIntent();
if ( data != null && data.getFlags() == 0x14000000){
// NetGameActivity is activity with google play connection
Intent intent = new Intent(this, NetGameActivity.class);
startActivity(intent);
}
}
但这感觉像是一种黑客行为,我想这个标志在某些设备上可能会有所不同。那么,是否可以通过清单来完成,或者是否有其他方式可以知道您刚刚从 Google Play 服务“接受邀请菜单”获得了意图?
【问题讨论】:
-
But it feels like a hack..因为它是。我不明白你想在这里完成什么。你说如果他们不想的话,你不希望他们使用 Google Play 服务……好吧,那就让他们选择连接吧。你在做什么看起来很傻 -
我想要 1) 自动连接并将用户重定向到已接受的游戏,即使他之前已注销,并且 2) 如果只是手动登录,则不要连接(也许他想玩单人游戏)。但我不知道如何检测(在连接到 GP 之前)他刚刚接受了一些游戏邀请。但是,是的,也许我应该忘记这一点并连接我的主要活动。
-
是的,我有 2 个按钮“单人游戏”、“在线游戏”,用户必须选择其中之一。但我想检测到该用户在 GPS 连接之前刚刚接受了游戏,如果是,则自动将他重定向到网络游戏。
-
@varren,我认为你所说的一切都是有道理的。为什么不能有一种方法可以确定,在玩游戏服务时知道 GPS 的意图是否是启动我们的 MainActivity 的意图?如果你设法解决了,请告诉我。
-
@user3833732 我刚刚放弃并在该应用程序中使用了 flg=0x14000000 标志破解,而其他所有应用程序都在我的主要活动中使用了 GPS。目前我根本不使用谷歌播放服务......这些天更喜欢我自己的服务器来托管游戏,所以不能建议
标签: android google-play google-play-services android-notifications google-play-games