我有一个保存用户图像的应用程序,但我会保存每个图像也是用户ID。
用户可以更换电话设备,但Google帐户始终相同。
我需要一个识别用户而不是手机的代码字符串。
可能是数字ID,不一定是Google帐户电子邮件。
我有这段代码,但错了(返回设备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
这个字母数字代码总是会改变!
感谢的 丹尼尔。
答案 0 :(得分: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结尾的第一个帐户;可以有不止一个。