Articles of accountmanager

如果联系人与电话通讯簿中的应用程序相关联,则显示应用程序图标

我正在尝试显示与应用程序关联的电话号码的应用程序图标。 我试图按照这个链接但是太难了。 有没有这个或任何简单的方法来解决这个问题? 例如,我们可以说联系人存在于电话地址簿中的whatsapp,facebook,google,…中。 同样,我想在这些信使应用程序旁边显示我的应用程序图标。

我可以使用AccountManager让用户使用他们的Google帐户登录吗?

我正在创建一个需要用户创建帐户的应用。 (像Facebook或Twitter一样需要你。) 但是,因为它是一个Android应用程序,我应该/可以让他们使用AccountManager或其他服务使用他们的Google帐户登录吗? 如果他们只能登录自己的Google帐户并将其设置和其他选项保存到该帐户,那将非常有用。 总结的主要问题: 是否可以让用户在我的应用中使用他们的Google帐户? 如果是,我是否使用AccountManager让他们登录并保存帐户信息/设置? 还有什么其他选择?

在Android帐户管理器中存储其他数据

我想使用android AccountManager来同步我的webservice和应用程序(联系人和calander的标准同步)但是, AccountManager只显示存储用户名和密码。 我的Web服务需要三个凭据:用户名,密码和帐户。 存储第三条信息的最佳做法是什么?

每次添加/删除自定义types的帐户时,为什么Android会触发Google帐户同步?

我有一个与使用AccountManager和Sync的Web服务相关联的应用,允许用户通过应用登录到他们的帐户并同步他们的数据(这是自定义数据,而不是联系人或Google帐户使用的任何其他内容)。 AFAIK,我正按照我应该的方式做所有事情。 当用户通过我们的API登录时,我将他们的帐户保存到Android AccountManager: AccountManager am = AccountManager.get(context); m.addAccountExplicitly(new Account(username, ACCOUNT_TYPE), account_id, user_data); 我已将ACCOUNT_TYPE定义为应用程序的包名称,这应足以将其与任何其他帐户types区分开来。 添加帐户后,我会将其设置为自动同步: ContentResolver.setSyncAutomatically(account, AUTHORITY, true); ContentResolver.addPeriodicSync(account, AUTHORITY, new Bundle(), SYNC_FREQUENCY_SECONDS); 我已将SYNC_FREQUENCY_SECONDS定义为86400(即1天)。 同样,如果用户注销,我只需从AccountManager中检索他们的帐户并调用removeAccount()将其删除。 很好,很简单。 同步是通过我自己的代码执行的,因为它是正在同步的所有自定义数据,并且一切正常。 然而,令我发疯的是,每当我使用此代码添加或删除帐户(我自己的types)时,它会立即触发设备上所有Google帐户的同步。 这意味着,在同步我的数据之前,首先必须同步所有电子邮件,日历数据,联系人,Google Play杂志,Google+数据和图片等等。这可能需要几分钟,在此期间我的应用只是耐心等待轮到同步数据。 这是非常令人沮丧的,我的用户很难理解为什么一旦他们登录就需要这么长时间来同步他们的数据(更不用说,当它同步那么多数据时,手机有慢慢的趋势几乎到了无反应的程度)。 我在这里做错了吗? 我的代码中是否存在无意中告诉Android的内容,“嘿,现在就去同步所有Google数据!”? 或者,这是Google必须忍受的Google帐户/同步框架中固有的内容吗?

AccountManager getUserData尽管设置了,但仍返回null

我正在使用一个使用AccountManager存储帐户和凭据的Android应用程序。 我遇到的一个问题是,即使我将一堆String值传递给AccountManager的addAccountExplicitly数据包。 我已经检查以确保捆绑包不是空的,并且在添加帐户之前它包含值。 大部分时间都是这种情况,但每当我查询这些值时,我偶尔会得到null。 我刚刚删除帐户并重新添加后,返回值更为常见。 我正在OnAccountsUpdateListener实现的onAccountsUpdated方法中进行查询 ,因此应该添加该帐户并且好了,对吧? 谢谢你的帮助 AuthenticatorActivity // in the AuthenticatorActivity Bundle userData = new Bundle(); userData.put (k1, v1); userData.put (k2, v2); userData.put (k3, v3); userData.put (k4, v4); userData.put (k1, v1); Account a = new Account (“acc name”, “com.account.type”); AccountManager am = AccountManager.get(this); OnAccountsUpdateListener listener = new OnAccountsUpdateListener() { @Override public void onAccountsUpdated(Account[] […]

如何使AccountManager(authtoken)和OpenID一起工作(没有AppEngine)?

我正在制作一个Android应用程序,它应该能够从Web服务(不是GAE的一部分)获取数据。 用户可以使用OpenId通过浏览器登录Web服务(仅允许使用Google帐户)。 AccountManager可以给我authtoken。 我可以将这个authtoken保存在我的服务器上,连同用户的谷歌帐户名(电子邮件),然后使用此帐户名将他的openid登录与应用程序注册连接起来。 但这并没有解决任何问题,因为我无法根据用户的OpenID信息validation此令牌……或者我呢? 我以为我可以使用用户的authtoken“以某种方式”将他的Android帐户链接到网络帐户。 这看起来越来越像是一种错误的处理方式,但我不想在SharedPreferences中保存用户Google的用户名/密码,并使用这些数据进行登录。 有创意吗? 谢谢

在用户允许访问后,如何强制AccountManager显示“访问请求”屏幕?

使用AccountManager :: getAuthTokenByFeatures时 ,将显示“访问请求”屏幕,供用户允许或拒绝访问该帐户。 用户允许访问后,后续调用(使用相同的参数)将返回auth令牌而不提示用户。 如何清除状态以确保出现“访问请求”提示? (这至少对于开发,测试和演示目的很有用。)

获取应用内购买结算中使用的Google ID

我注意到设备可能同时登录多个Google帐户。 据我所知,在Honeycomb之前,有一个主要ID; 从Honeycomb上你可以简单地插入几个。 我目前有两个ID登录到我的测试平板电脑。 从Google Play购买时,您可以选择用于购买的帐户。 我想在我正在撰写的应用程序中添加应用内结算,并且我想确保每个Google ID都可以在任何设备上购买,这意味着我需要知道首先使用哪个ID进行购买。 这意味着我需要执行以下操作之一: 强制Google Play使用用户在我的应用中选择的其中一个Google ID; 检索Google Play用于购买的ID。 文档似乎是在假设只有一个购买者会在一台设备上活动的情况下编写的。 是否有可能做到这一点?

Android SyncAdapter自动初始化同步

我的应用程序有一个SyncAdapter ,还有一个AccountManager可以将我的应用程序帐户添加到Android帐户管理器。 我向帐户管理器添加帐户时的代码如下所示: Bundle data = new Bundle(5); data.putString(_PEOPLE_ID, people_id); data.putString(_FIRST_NAME, first_name); data.putString(_LAST_NAME, last_name); data.putString(_PLAN, plan); data.putString(_BIRTHDAY, birthday); Account account = new Account(username, _ACCOUNT_TYPE); try { boolean created; created = _account_manager.addAccountExplicitly(account, _cryptography.encrypt(_SEED, password), data); response.accountCreated(created); _account_manager.setAuthToken(account, _TOKEN_TYPE, session_token); _model.updateActiveAccount(people_id, username, password); SharedPreferences.Editor settings = _settings.edit(); settings.putString(_ACCOUNT_TYPE, account.name); settings.putString(_TOKEN_TYPE, session_token); settings.commit(); // Tells the content provider […]

自定义帐户validation器。 从设备中删除帐户后清理

有没有办法得到某种通知/广播/等。 从“帐户和同步设置”中删除自定义帐户时? 我拥有的应用程序可以为设备上的多个用户提供便利(这是为了公司使用)并使用单个SQLite数据库。 假设我在设备上为我的应用程序创建多个用户,并使用仅与这两个用户相关的数据填充数据库。 我的问题是,如果其中一个用户从“帐户和同步设置”中删除,我无法清理SD卡上的数据库和/或某些外部文件。 我可以在冗余表中复制用户信息并将其与注册帐户进行比较,然后如果表中的用户信息与AccountManager中的Account []数组不匹配,则从数据库中删除用户数据。 对我来说很脏。