您如何在代碼中訪問用戶的Google帳戶ID /用戶名?我正在構建一個將調用Web服務來存儲數據的應用程序,並且我想要確定提交數據的人員的身份。通過Android訪問Google帳戶ID /用戶名
回答
我遇到同樣的問題,解決了我這兩個環節:
第一個是這一個:How do I retrieve the logged in Google account on android phones?
呈現了用於檢索與電話相關聯的賬戶代碼。基本上,你需要這樣的事情:
AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account[] list = manager.getAccounts();
而且在AndroidManifest.xml中添加的權限
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"></uses-permission>
此外,如果您使用的是仿真器下面的鏈接將幫助您設置它與帳戶:Android Emulator - Trouble creating user accounts
基本上,它說,你必須創建一個基於API級別的Android設備,而不是SDK版本(通常是這樣做)。
使用此: - http://stackoverflow.com/a/31538053/4395114 – 2015-07-21 11:56:45
我怎樣才能獲得帳戶頭像?非常感謝你' – Urchin 2015-08-11 19:13:49
@Urchin這個問題有點超出了這個問題的範圍,但我相信這另一個可以幫助你。 http://stackoverflow.com/questions/17905066/get-user-name-avatar-from-google-account – 2015-08-13 00:00:52
有一個來自google的示例,它列出了現有的Google帳戶並在選擇時生成訪問令牌,您可以將該訪問令牌發送到服務器以從中檢索相關詳細信息以識別用戶。
您也可以從訪問令牌獲得的電子郵件ID,對於需要修改的範圍
請通過My Post
這種方法來獲得谷歌用戶名:
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 > 0 && parts[0] != null)
return parts[0];
else
return null;
} else
return null;
}
簡單此方法調用....
並在Gmail中獲取Google用戶ID:
accounts = AccountManager.get(this).getAccounts();
Log.e("", "Size: " + accounts.length);
for (Account account : accounts) {
String possibleEmail = account.name;
String type = account.type;
if (type.equals("com.google")) {
strGmail = possibleEmail;
Log.e("", "Emails: " + strGmail);
break;
}
}
在清單中添加權限後;
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
爲什麼要求網際網路和訪問網絡狀態權限? – Chitrang 2015-12-09 12:10:26
String name = android.os.Build.USER;
if (!TextUtils.isEmpty(name)) {
nameEdit.setText(name);
}
那麼,我試過這個,它返回給我「dpi」。顯然不是用戶的名字。 – 2015-08-02 08:27:16
if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) {
Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
String userid=currentPerson.getId(); //BY THIS CODE YOU CAN GET CURRENT LOGIN USER ID
}
檢索的登錄用戶 使用GoogleSignInResult.getSignInAccount方法來請求對當前登錄用戶的個人資料,個人資料信息。 登錄意圖成功後,您可以調用getSignInAccount方法。
GoogleSignInResult result =
Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount acct = result.getSignInAccount();
String personName = acct.getDisplayName();
String personGivenName = acct.getGivenName();
String personFamilyName = acct.getFamilyName();
String personEmail = acct.getEmail();
String personId = acct.getId();
Uri personPhoto = acct.getPhotoUrl();
- 1. 通過Android訪問Google帳戶ID(2.0之前)
- 2. Google帳戶訪問令牌
- 3. 如何在Google帳戶中訪問用戶的個人資料名稱/ ID
- 4. 通過Google API客戶端訪問Google Play帳戶報告PHP庫
- 5. 通過python訪問谷歌帳戶
- 6. Android:用戶ID帳戶(不ID電話)
- 7. 僅通過帳戶名稱獲取Windows用戶帳戶SID
- 8. Google Drive Ruby - 通過服務帳戶訪問文件
- 9. Google Calendar API - 通過服務帳戶訪問自己的日曆
- 10. 允許Google服務帳戶YouTube通過API v3上傳訪問
- 11. 通過沒有Google帳戶的GAS訪問Fusion Tables
- 12. 可以通過服務帳戶授權訪問哪些Google API?
- 13. 通過服務帳戶密鑰訪問Google表格API
- 14. 通過登錄Facebook帳戶獲取Facebook用戶ID通過Android登錄Facebook帳戶
- 15. 允許Android市場訪問,但不允許Google商戶帳戶訪問
- 16. Google用戶帳戶
- 17. 訪問Google +用戶個人資料ID
- 18. 訪問Google analytics模擬帳戶
- 19. 生成令牌以訪問Google帳戶
- 20. 如何訪問Google帳戶user_id?
- 21. 來自GDK的Google+帳戶訪問
- 22. Android是否需要Google用戶帳戶?
- 23. 如何在Android應用上使用Google+帳戶提供多用戶訪問
- 24. 通過C#訪問用戶
- 25. 撤銷Android應用上的Google帳戶訪問確認
- 26. 如何通過谷歌的用戶帳戶通過谷歌訪問Google Cloud SQL Apps腳本
- 27. 獲取安裝該應用的Google Play帳戶的Google帳戶用戶名
- 28. google api服務帳戶訪問用戶任務列表
- 29. 使用Google Apps for Work帳戶登錄訪問Azure門戶
- 30. 授予Google服務帳戶訪問我所有的Google Analytics帳戶的權限
獲取谷歌帳戶的用戶名和電子郵件 http://stackoverflow.com/a/31538053/4395114 – 2015-07-21 11:51:03
也有在Android的[這裏](HTTP賬戶管理庫:// stackoverflow.com/questions/24227274/how-to-add-programmatically-a-custom-account-in-android/39686087#39686087)。 – 2016-09-25 11:56:52