2017-08-21 16 views
0

ユーザー名としてGoogleアカウントを使用して登録とログインシステムを作成しようとしていますが、アンドロイドデバイスのすべてのGoogleアカウントを文字列として取得し、配列?団体でアンドロイドのGmailアカウントをすべて取得する

+0

repplyは非常に長く伸びています。 GmailのGoogle APIをチェックし、Unity3dから再起動サービスを呼び出す必要があります。しかし答えはイエスです、それを行う方法があります。 – joreldraw

答えて

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ポストはユニティプロジェクトでマニフェストを使用する方法について説明します。

関連する問題