我知道通过客户经理,我可以访问设备上的帐户列表。
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]);
我想要做的是打开"帐户设置"对于特定帐户,例如:
不这样:
答案 0 :(得分:0)
棘手的部分是Android对Account的定义非常抽象,因此根据您的使用情况,您将遇到没有这些屏幕或多个屏幕的帐户。这些屏幕可能看起来不像首选项/设置屏幕 - 它们可以是Account
身份验证器定义的任何活动。
一般来说,我认为这是你可以做的:
使用getAuthenticatorTypes()
的{{1}}方法。这个
将为您提供所有AuthenticatorDescriptions。取决于
您的用例,您可以选择您关心的AuthenticatorDescription
关于(基于“类型”值)并进一步调查。
http://developer.android.com/reference/android/accounts/AccountManager.html#getAuthenticatorTypes()
AccountManager
会告诉你
AuthenticatorDescription
定义了“层次结构”
PreferenceScreen将添加到帐户的设置页面“。
而这又定义了一个“PreferenceScreen xml层次结构”
包含可以调用以管理的PreferenceScreens列表
验证者“。
http://developer.android.com/reference/android/accounts/AuthenticatorDescription.html
使用accountPreferencesId
和提供的包
accountPreferencesId
解析您需要的AuthenticatorDescription
,允许您
将用户导航到他们。参考XML的外观
喜欢:
http://developer.android.com/reference/android/accounts/AbstractAccountAuthenticator.html
这是一个找到Intents
动作/类并启动它的方法。它没有考虑到上面引用的Preferences XML中可能定义了多个Activities的事实。实际上,它并没有考虑很多错误情况,并且肯定可以进行优化,但应该作为一个合适的概念证明和起点:
Activity
答案 1 :(得分:0)
您可能拥有您的帐户信息数据库,您可以打开它并为其设计类似的样式表单,这可以解决您的问题