- Home /
How access the Google Play Account IDs on Android?
I want to access the Google Play account IDs (Email IDs) that are associated with that android phone through code in Unity. Something I don't think unity can do by default using it's API, but I wish I am wrong.
Getting Google play information about accounts associated with a device is possible. There is an app that does that : https://play.google.com/store/apps/details?id=com.redphx.deviceid&hl=en
Here's my understanding of the issue so far - There is a framework available at https://github.com/android/platform_frameworks_opt_com.google.android/ that allows you to access that information. In Eclipse ADT - here's the Java code that we need to add to get the information:
Call the method :-
com.google.android.googlelogin.GoogleLoginServiceHelper.getAccount
(Activity activity, int requestCode, boolean requireGoogle);
Add code :-
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 123){
System.out.println(resultCode);
String key = "accounts";
System.out.println(key + ":" +
Arrays.toString(data.getExtras().getStringArray(key)));
String accounts[] = data.getExtras().getStringArray(key);
if(accounts != null){
int i = 0;
for(String ac : accounts){ //each account is the full
email address registered with this device
System.out.println("ac " + i + "=" + ac);
i++;
}
}
}
So, I guess my question is - how can I load up that framework (.jar) into my unity project and run the code?
Or : The other method to do something similar in Eclipse would be to use:
Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
Account[] accounts = AccountManager.get(context).getAccounts();
for (Account account : accounts) {
if (emailPattern.matcher(account.name).matches()) {
String possibleEmail = account.name;
...
}
}
Thanks in advance! - Ashwin