首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在不同的Android设备上识别同一个用户

在不同的Android设备上识别同一个用户
EN

Stack Overflow用户
提问于 2018-04-28 21:45:51
回答 1查看 282关注 0票数 1

我正在开发一个统一游戏,玩家在游戏中构建一个城市,用户进化数据保存在服务器上。考虑到这一点,我需要检测玩家何时在不同的设备上连接,为他提供自己的城市(而不是一个新的)。实现这个目标的最佳方法是什么,如果可能的话,它不需要玩家的操作,比如点击登录按钮或接受权限?

目前,我只为Android开发,我的理解是,我需要应用程序为服务器提供一个TokenId,它可以对其进行验证(并检索相关的播放器id)。我该怎么做?我正在尝试使用Google游戏(统一插件),但它似乎有很多我不需要的功能。此外,也可能是因为这些特性,在我第一次尝试中,我向用户询问了对以下内容的权限:

  • 知道你在谷歌上是谁
  • 管理此游戏的游戏活动

我玩过其他的游戏,连接谷歌的Play帐户,不要求这样的权限,只需说“欢迎XXX”。有人能给我一些怎么做的建议吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-28 22:27:25

实现这个目标的最佳方法是什么,如果可能的话,它不需要玩家的操作,比如点击登录按钮或接受权限?

未经允许,无法在不同设备上检测到同一个用户。您必须有一种方法来检测那些不同设备上常见的东西,以确定它是否是同一个用户。

在这种情况下,唯一可以这样做的信息是在设备上注册的帐户,它需要许可。没别的办法了。这可能是唯一的办法。

这是唯一需要的权限,可以很容易地added到您的团结项目。不需要插件:

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.GET_ACCOUNTS" />

获取与设备绑定的帐户或电子邮件,并使用WWWUnityWebRequest API确定其是否位于服务器上,然后提取保存在该帐户上的数据。

下面是如何使用C#获取Android设备上的所有帐户

代码语言:javascript
运行
复制
string[] getAllEmailAccounts()
{
    AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

    AndroidJavaClass ACManager = new AndroidJavaClass("android.accounts.AccountManager");
    AndroidJavaObject ACManagerAct = ACManager.CallStatic<AndroidJavaObject>("get", currentActivity);

    AndroidJavaObject accounts = ACManagerAct.Call<AndroidJavaObject>("getAccountsByType", "com.google");
    AndroidJavaObject[] accountArray = AndroidJNIHelper.ConvertFromJNIArray<AndroidJavaObject[]>(accounts.GetRawObject());

    string[] accountName = new string[accountArray.Length];

    for (int i = 0; i < accountName.Length; i++)
    {
        accountName[i] = accountArray[i].Get<string>("name");
    }

    return accountName;
}

通过这样做,您将避免使用Google游戏插件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50081354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档