3

我已经创建了自己的自定义帐户,并且可以正常添加帐户并在应用程序中使用它。

我现在希望能够编辑帐户信息,而不是删除和添加帐户。我的帐户上有许多字段,有些可能有点冗长,因此删除和添加相当麻烦。

我已经通过添加我自己的 PreferenceScreen 并通过我的 account-authenticator XML 文件中的 android:accountPreferences 连接它来创建基础知识,如下所示:AbstractAccountAuthenticator

在我的 PreferenceScreen 中,我定义了打开我的活动的意图,该活动用于输入帐户的用户数据。

<PreferenceScreen
    android:key="edit"
    android:title="Edit Account Details"
    android:summary="Change System ID, user name, password etc.">
    <intent
        android:action="my.app.accountmanager.UserCredentialsActivity.ACCOUNT_SETUP"
        android:targetPackage="my.app.accountmanager"
        android:targetClass="my.app.accountmanager.UserCredentialsActivity" />
</PreferenceScreen>

我的问题是,我如何在意图中作为附加信息传递或找到我在设置/帐户和同步中选择的帐户的帐户信息。这种自定义帐户类型可能有多个帐户,因此我不能只搜索该类型的任何帐户。我需要来自所选帐户的数据。

我的想法大致在这些方面:

  1. 在 xml 中包含一些内容以添加额外内容。不明白这怎么可能。
  2. 意图的目标是我的 AccountAuthenticator 类或身份验证服务,但我如何传递我想要编辑数据?由于 AbstractAccountAuthenticator 有一个 updateCredentials 方法,它返回一个包含我的数据输入活动意图的包,如果我可以传入一个 EDIT 操作或类似的东西,这可能会起作用。
  3. 在某处覆盖某些方法以使用帐户数据创建我自己的意图。

我希望这是可能的,因为三星应用程序和 Dropbox 应用程序都可以从 Accounts & Sync 执行此操作,尽管它们都不允许多个帐户...

4

1 回答 1

1

我认为 AbstractAccountAuthenticator 中的 accountPreferences 属性很快就会过时。如果你查看JB中的账户,如果你添加多个账户,它会像这样显示

  1. account1@gmail.com
  2. account2@gmail.com
  3. 偏爱

代替

  1. account1@gmail.com -> 偏好
  2. account2@gmail.com -> 偏好

如果您查看 Gmail 应用程序,Gmail 的首选项(通知铃声)是在 Gmail 应用程序本身内配置的,无法从“帐户和设置”页面进行配置。

因此,您应该只将 accountPreferences 属性用于所有帐户共有的首选项。

于 2012-11-25T06:57:57.223 回答