0

我有一个保存用户图像的应用程序,但我会保存每个图像以及用户 ID。

用户可以更改电话设备,但谷歌帐户始终相同。

我需要一个识别用户而不是电话的代码字符串。

也许是一个数字 ID,不一定是谷歌帐户电子邮件。

我有此代码但错误(返回设备 ID 而不是用户 ID)

TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
telephoneCode = tm.getDeviceId();

或者

String code=Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);

#########

我有测试

AccountManager mgr = AccountManager.get(getApplicationContext());
Account[] accounts = mgr.getAccountsByType("com.google");
String userCode=accounts.toString();

在此代码中返回一个字符串:

[Landroid.accounts.Account;@318ca48b

这个字母数字代码总是会改变!

谢谢丹尼尔。

4

1 回答 1

1

这是我的做法:

AccountManager accountManager = AccountManager.get(getApplicationContext());

Account[] accounts = accountManager.getAccountsByType("com.google");

for (Account a: accounts) {
    if (a.name.contains("@gmail.com")) {
        return a.name;
    }
}

这将返回以@gmail.com 结尾的第一个帐户;可能不止一个。

于 2012-03-12T23:52:54.327 回答