【问题标题】:Get all gmail accounts on android in unity统一获取android上的所有gmail帐户
【发布时间】:2017-08-21 10:59:02
【问题描述】:

我正在尝试使用 google 帐户作为用户名创建一个注册和登录系统,我想知道有没有办法将 android 设备上的所有 google 帐户作为字符串并将它们全部放在一个数组中?

【问题讨论】:

  • 回复内容非常丰富,而且有很多不同的部分。您需要开始检查 gmail 的 Google api 并从 Unity3d 调用 restservice。但答案是肯定的,有办法做到这一点。

标签: c# unity3d


【解决方案1】:

此答案基于我在 Java 中的other 答案。通过使用AndroidJavaClassAndroidJavaObject,您根本不需要Java 代码和jar/aar 插件。这一切都将通过 C# 完成。

string[] getAndroidEmailAccounts()
{
    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;
}

您需要在清单中获得此权限:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

This 帖子描述了如何在 Unity 项目中使用 Manifest。

【讨论】:

  • 现在还能用吗?我试过了,但它总是给我一个空字符串。
猜你喜欢
  • 1970-01-01
  • 2014-09-08
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
  • 2018-01-22
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多