如何获得Android手机用户的谷歌帐户名称?

时间:2015-04-17 03:37:51

标签: android google-account

所以我用统一引擎制作手机游戏,想想发布到android目标。

现在我的游戏将拥有自己的自定义高分榜,我认为当用户获得分数时,游戏应该将他的身份昵称,分数发送给服务器。

因此,为了获得他的独特名称,我想要获得他的谷歌帐户名称。 (当然我可以选择接收用户输入的选项作为他的昵称,但很好,很烦人)

我只需要电子邮件格式的前部(即用户名) 例如,如果用户的Google帐户是asdf@gmail.com,我只想提取“asdf”。

那么,怎么做呢?

这是获得他独特昵称的好方法吗?

感谢。


所以我确实喜欢这个,但是没有用。

public class MainActivity extends UnityPlayerActivity implements        AndroidInterface{
private String usergoogleName;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);  
    GetUserName();      
} 
public void GetUserName(){
    AccountManager manager = AccountManager.get(this);
    Account[] accounts = manager.getAccountsByType("com.google");
    List<String> username = new LinkedList<String>();

    for (Account account : accounts) {
        username.add(account.name);
    }
    usergoogleName = username.get(0);
    sendMessage("Main Camera", "JavaMsg", usergoogleName);
}

@Override
public void sendMessage(String target, String method, String params) {
    // TODO Auto-generated method stub
    UnityPlayer.UnitySendMessage(target, method, params);
}

在统一方面,我将脚本附加到'Main Camera'对象并写,

public string name;
public void JavaMsg(string str){
    name = str;
}
void OnGUI(){
    GUI.Label(new Rect(100, 200, 300, 100), "google account name is " + name);
}

但是当我在制作.apk文件后在我的手机上运行此功能时,不会读取帐户名称。

有什么问题?

2 个答案:

答案 0 :(得分:7)

试试这个

AccountManager manager = AccountManager.get(context);
Account[] accounts = manager.getAccountsByType("com.google");
List<String> username = new LinkedList<String>();

for (Account account : accounts) {
    username.add(account.name);
}

并添加对android清单的权限

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

答案 1 :(得分:3)

如果您有一个字符串asdf@gmail.com并且您想要@之前的所有内容,则可以使用.split();

String email = asdf@gmail.com
String[] parts = email.split("@");
String nickname = parts[0];