- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想在我的应用程序中预填充一些字段,以便在用户订阅我的应用程序内的服务时帮助他。
那么我如何获得设备所有者的名字和姓氏。我想使用与 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_PROFILE
和 READ_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/
当我们可以使用 Accountmanager.addAccountExplicitly() 创建包含所有参数的帐户时,为什么我们使用 Accountmanager.addAccount()。 我用谷歌
有什么区别- AccountManager accountManager = (AccountManager) context.getSystemService(Context.ACCOUNT_SER
我知道 AccountManager的 addOnAccountsUpdatedListener()可用于获取有关帐户列表更改的通知。如果发生此类事件,框架将调用提供的 OnAccountsUpdat
AccountManager 帐户存储在哪里?它在设备上吗?如果是,它存储在哪个文件夹中? 最佳答案 它存储在这里: Environment.getSystemSecureDirectory().ge
在 AccountManager 教程中 Remembering Your User ,建议: If there's more than one Account in the array, you s
我有一个应用程序正在实现我自己的身份验证器,如 this 中所述文章。它按预期工作正常。现在我需要从 AccountManager 获取谷歌帐户,我是这样做的: Account[] accounts
我尝试在我的应用程序中实现一个客户管理器,以避免用户每次打开应用程序时都必须登录。 所以基本上,我已经有了我的身份验证 Activity ,用户可以在其中放置其登录名和密码,以及我们从服务器接收 to
语境 我的应用程序只存储用户/通行证。不使用 token 。 问题 1 方法 setAccountAuthenticatorResult(Bundle) 和 onResult(Bundle) 旨在通知
Security tips与 AccountManager 相关的章节提到: If credentials are used only by applications that you create,
我正在尝试确定用户是否已添加该帐户,以防止在我的应用程序上多次添加同一帐户。我正在使用我自己的帐户验证器 Activity 。这是我的代码: public class AuthenticatorAct
我正在使用 custom class to expose some custom schema in Active Directory .我正在存储一个二进制 blob,根据项目要求,此数据必须存储在
我想使用他的 Google 帐户对我应用的用户进行身份验证,因为这是在多个设备上对用户进行身份验证的最简单方法。 我的问题是,如果我使用 AccountPicker.newChooseAccountI
我正在开发一个应用程序,它使用 AccountManager 获取 Google 帐户的凭据,该帐户随后用于从 AppEngine 获取 cookie。我注意到我在将应用程序发送给测试人员时发现了错误
我需要一些帮助来了解客户经理为我们提供的服务。我有一个需要 token 才能使用的 Web 服务。例如,如果开发人员想使用我的 api,他们会使用如下 url: http://myservice.co
我在 AccountManager 中保存了一个授权 token ,但是,当我执行 peekAuthToken(account, authTokenType) 时,它返回 null。我的调用者 uid
在文档中,android account manager blockingGetAuthToken 声明如果它的第三个参数notifyAuthFailure 为false,它会提示用户登录 Activ
我了解需要 AccountManager 的用途,并且稍微了解如何使用和实现它。但是,我还不知道我是否可以正确使用它,如果我不拥有它,甚至与我用来验证我的应用程序的服务相关联。我正在编写一个使用 RE
我一直在努力弄清楚如何使用 Google 客户经理为用户提供一种登录我的应用程序的方法。 我已返回 AuthToken,但我如何才能获得一些不会更改的帐户的唯一信息,例如 uniqueID 或其他信息
我正在创建两个应用程序。主应用程序包含一个登录名,用于创建自定义帐户。对于第二个应用程序,我想从主应用程序访问用户数据(刷新 token 存储在那里)。 主应用正在创建自定义帐户,刷新 token 通
我正在尝试获取 Google 帐户的授权 token ,因为我正在使用以下代码: AccountManager acoountManager = AccountManager.get( getCon
我是一名优秀的程序员,十分优秀!