我正在尝试使用谷歌帐户作为用户名创建一个注册和登录系统,我想知道是否有办法将Android设备上的所有谷歌帐户都作为字符串并将它们全部放入数组?
答案 0 :(得分:1)
这个答案是基于我在Java中的other答案。通过使用AndroidJavaClass
和AndroidJavaObject
,您根本不需要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。