如何打开特定帐户的帐户设置?

时间:2014-04-13 18:00:59

标签: android

我知道通过客户经理,我可以访问设备上的帐户列表。

 Account[] accounts = AccountManager.get(this).getAccounts();

我也知道使用android.settings.ACCOUNT_SYNC_SETTINGS我可以打开特定帐户的同步设置

Intent in=new Intent("android.settings.ACCOUNT_SYNC_SETTINGS");
in.putExtra("account", accounts[3]);

我想要做的是打开"帐户设置"对于特定帐户,例如:

enter image description here

这样:

enter image description here

2 个答案:

答案 0 :(得分:0)

一般方法:

棘手的部分是Android对Account的定义非常抽象,因此根据您的使用情况,您将遇到没有这些屏幕或多个屏幕的帐户。这些屏幕可能看起来不像首选项/设置屏幕 - 它们可以是Account身份验证器定义的任何活动。

一般来说,我认为这是你可以做的:

  1. 使用getAuthenticatorTypes()的{​​{1}}方法。这个 将为您提供所有AuthenticatorDescriptions。取决于 您的用例,您可以选择您关心的AuthenticatorDescription 关于(基于“类型”值)并进一步调查。 http://developer.android.com/reference/android/accounts/AccountManager.html#getAuthenticatorTypes()

  2. AccountManager会告诉你 AuthenticatorDescription定义了“层次结构” PreferenceScreen将添加到帐户的设置页面“。 而这又定义了一个“PreferenceScreen xml层次结构” 包含可以调用以管理的PreferenceScreens列表 验证者“。 http://developer.android.com/reference/android/accounts/AuthenticatorDescription.html

  3. 使用accountPreferencesId和提供的包 accountPreferencesId解析您需要的AuthenticatorDescription,允许您 将用户导航到他们。参考XML的外观 喜欢: http://developer.android.com/reference/android/accounts/AbstractAccountAuthenticator.html

  4. tl; dr - 代码:

    这是一个找到Intents动作/类并启动它的方法。它没有考虑到上面引用的Preferences XML中可能定义了多个Activities的事实。实际上,它并没有考虑很多错误情况,并且肯定可以进行优化,但应该作为一个合适的概念证明和起点:

    Activity

答案 1 :(得分:0)

您可能拥有您的帐户信息数据库,您可以打开它并为其设计类似的样式表单,这可以解决您的问题