Articles of accountmanager

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

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

您是否应该使用AccountManager存储Android应用的用户名和密码?

我想知道是否应该实施AccountManager来保存用户凭据,如用户名,电子邮件,密码等。我找不到自己使用它的充分理由。 我不希望其他应用程序访问Accounts ,我真的不希望它们显示在“帐户和同步”设置中(虽然这可能不是什么大问题)。 所以我的问题是:我应该使用它吗? 优点缺点? 我可以隐藏其他应用程序中的Accounts并阻止它们出现在“帐户和同步”中吗?

如何从ASyncTask调用父活动函数?

可以从Activity调用setAccountAuthenticatorResult ,它扩展了AccountAuthenticatorActivity 。 我的活动扩展了,但是启动ASyncTask,因此应该从ASyncTask调用此setAccountAuthenticatorResult (或者,ASyncTask的结果应该传递回主线程)。 怎么做? 下面的代码有什么问题? AsyncTask task = new RetrieveAccessTokenTask(this, consumer, provider, prefs).execute(uri); public class RetrieveAccessTokenTask extends AsyncTask { private Context context; public RetrieveAccessTokenTask(Context context, OAuthConsumer consumer, OAuthProvider provider, SharedPreferences prefs) { this.context = context; } @Override protected void onPostExecute(Bundle result) { context.setAccountAuthenticatorResult(); // doesn’t work }

在Android中使用AccountManager的好教程?

有没有人知道在android中使用AccountManager的任何好教程,基本上我想要做的是请求一个OAuth2令牌与谷歌api一起使用,任何建议将不胜感激:)

如何在Android手机上检索登录的Google帐户?

我正在开发Android应用程序,我需要检索手机上使用的Google帐户。 我想为C2DM做这个,但我不想让用户输入他/她的谷歌电子邮件帐户,如果他们已经登录。有什么办法吗?

Accountmanager.addAccount()vs Accountmanager.addAccountExplicitly()

为什么我们使用Accountmanager.addAccount()时,我们可以使用Accountmanager.addAccount()创build所有参数的帐户。 我Accountmanager.addAccount()了,并找出当我们使用Accountmanager.addAccount()它触发AbstractAccountAuthenticator addAccount事件,但是有什么意义呢? 为什么我们应该使用addAccount方法? 大功率的 我们可以这样创build账户: Account account = new Account(accountname, accountType); mAccountManager.addAccountExplicitly(account, accountPassword, null);

如何从Android上保存的帐户中检索Facebook-AuthToken

我试图通过使用下面的一段代码检索Facebook的AuthToken(由Facebook保存Android )。 AccountManager am = AccountManager.get(this); Account[] accounts = am.getAccountsByType("com.facebook.auth.login"); if (accounts.length > 0) { for(int j = 0; j < accounts.length; j++) { Account account = accounts[j]; if(account.type != null && account.type.equals("com.facebook.auth.login")) { Log.e(RuntimeVars.MY_NAME, "FACEBOOK-TYPE FOUND"); am.getAuthToken(account, "com.facebook.auth.login", null, ConversationList.this, new AccountManagerCallback<Bundle>() { public void run(AccountManagerFuture<Bundle> arg0) { try { Bundle b = arg0.getResult(); […]

我们如何控制Android同步适配器偏好?

在试图写一个自定义的Android同步适配器我跟着这个 。 在上述示例中,我成功地在“ 常规”设置中显示了一个条目(“帐户设置”),其中包含以下代码段。 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="General Settings" /> <PreferenceScreen android:key="account_settings" android:title="Account Settings" android:summary="Sync frequency, notifications, etc."> <intent android:action="fm.last.android.activity.Preferences.ACCOUNT_SETUP" android:targetPackage="fm.last.android" android:targetClass="fm.last.android.activity.Preferences" /> </PreferenceScreen> </PreferenceCategory> </PreferenceScreen> 代码导致我在常规设置中input( 帐户设置 ): 点击帐户设置后,我收到如下错误信息,设备不必要的重启。 ERROR / AndroidRuntime(30057):android.util.AndroidRuntimeException:从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志。 这真的是你想要的吗? 我知道这个错误可以通过代码来解决。 由于“帐户设置”首选项是基于XML的代码,我坚持与错误。 任何人都可以帮助解决这个问题? 我们如何通过代码来控制这种偏好?

我应该怎样使用Android AccountManager?

我在Android SDK中看到了AccountManager,它用于存储帐户信息。 因此,我无法find它的目的是什么一般的讨论。 有没有人知道有什么有用的讨论AccountManager背后的意图是什么,它买什么? 任何意见,这是适合什么types的帐户? 这是否会将您的用户的帐户信息放到一般的Web服务中?

AccountManagerFuture.getResult()导致“无法login”屏幕

我正在尝试使用AccountManager为已安装的Google帐户获取令牌。 当我在我的AccountManagerFuture对象上调用getResult()时,我得到设备上的“无法login”屏幕(进一步说:“有一个probem与Google服务器通信,请稍后再试。”)networking连接在调用这个方法之前是可用的,我也在浏览器中检查了我可以访问的设备,例如google.com,下面是我的AccountManagerCallback的代码: amf = accMgr.getAuthToken(account, authTokenType, null, true, new AccountManagerCallback<Bundle>() { public void run(AccountManagerFuture<Bundle> arg0) { Bundle result; Intent i; String token; try { result = arg0.getResult(); if (result.containsKey(AccountManager.KEY_INTENT)) { i = (Intent)result.get(AccountManager.KEY_INTENT); if (i.toString().contains("GrantCredentialsPermissionActivity")) { // Will have to wait for the user to accept // the request therefore this will have to // […]