2010-04-28 25 views
16

Tôi đã nhìn thấy các tham chiếu đến việc sử dụng Trình quản lý tài khoản như Accessing Google Account Id /username via Android nhưng có vẻ như nó là để lấy quyền tự tin?Tôi làm cách nào để có được tên người dùng Google trên Android?

Tôi chỉ cần truy cập vào tên người dùng, không có mật khẩu hoặc bất kỳ mã thông báo xác thực nào.

Tôi đang sử dụng Android 2.1 sdk.

+2

Xem phản hồi của tôi tại đây: http://stackoverflow.com/questions/2112965 –

Trả lời

45

Như đã đề cập trong các nhận xét, câu trả lời của Roman là How to get the Android device's primary e-mail address giải quyết nó. Đây là mã tôi sử dụng để xóa tên người dùng khỏi email.

public String getUsername() { 
    AccountManager manager = AccountManager.get(this); 
    Account[] accounts = manager.getAccountsByType("com.google"); 
    List<String> possibleEmails = new LinkedList<String>(); 

    for (Account account : accounts) { 
     // TODO: Check possibleEmail against an email regex or treat 
     // account.name as an email address only for certain account.type values. 
     possibleEmails.add(account.name); 
    } 

    if (!possibleEmails.isEmpty() && possibleEmails.get(0) != null) { 
     String email = possibleEmails.get(0); 
     String[] parts = email.split("@"); 

     if (parts.length > 1) 
      return parts[0]; 
    } 
    return null; 
} 
+2

Chỉ muốn chỉ ra rằng điều này sẽ không hoạt động nếu người dùng có nhiều tài khoản và có thể sẽ không hoạt động nếu họ không không sử dụng Gmail. Tôi đã có tối đa 3 tài khoản Google, một tài khoản cá nhân, một công việc và một Gmail mà Google buộc phải đăng ký khi tôi kích hoạt điện thoại, nhưng sau đó tôi đã xóa thông qua trình duyệt trên máy tính để bàn của mình. – Chloe

+0

@Chloe Cách chọn một trong các tài khoản Google và lưu? – Zyoo

+0

Tôi có thể gửi thư bằng oauth2 và đôi khi nó không hoạt động .. cách nhận được thư xác nhận là gửi thành công bằng mã thông báo này với Gmail..bởi vì nếu không có thư, tôi có tùy chọn gửi sms –

Các vấn đề liên quan