gpt4 book ai didi

Android - 使用手机所有者的 AccountManager/First and Last name 获取 UserData

转载 作者:可可西里 更新时间:2023-11-01 18:45:17 35 4
gpt4 key购买 nike

我想在我的应用程序中预填充一些字段,以便在用户订阅我的应用程序内的服务时帮助他。

那么我如何获得设备所有者的名字和姓氏。我想使用与 Google 帐户关联的默认信息;到目前为止我得到了这个:

AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();
for (Account account : accounts) {
if (account.type.compareTo("com.google") == 0)
{
String possibleEmail = account.name;
// how to get firstname and lastname here?
}
}

如果您提出建议,我愿意采取其他方法 - 只要我能得到所有者的电子邮件、名字和姓氏。

最佳答案

Ice Cream Sandwich获取此信息很容易,因为 Android 包含代表设备所有者的个人配置文件 - 此配置文件称为“我”配置文件并存储在 ContactsContract.Profile 中。 table 。只要您在 AndroidManifest.xml 中请求 READ_PROFILEREAD_CONTACTS 权限,就可以从用户的个人资料中读取数据。

与您最相关的字段是 DISPLAY_NAME来自联系人的列,可能还有 StructuredName字段 - 用户的联系照片之类的东西也可用。

Android Code Lab 教程给出了 a full example of reading a user's profile ,代码的核心位在 ListProfileTask 中。这是一个删节的 fragment :

Cursor c = activity.getContentResolver().query(ContactsContract.Profile.CONTENT_URI, null, null, null, null);
int count = c.getCount();
String[] columnNames = c.getColumnNames();
boolean b = c.moveToFirst();
int position = c.getPosition();
if (count == 1 && position == 0) {
for (int j = 0; j < columnNames.length; j++) {
String columnName = columnNames[j];
String columnValue = c.getString(c.getColumnIndex(columnName)));
...
// consume the values here
}
}
c.close();

不幸的是,我认为在 API 级别 14 之前没有办法获取此类数据。

关于Android - 使用手机所有者的 AccountManager/First and Last name 获取 UserData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7367283/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com