编辑自定义账户

3
我已经创建了自己的自定义账户并成功地将其添加到应用程序中使用。现在我希望能够编辑账户信息,而不是删除和添加账户。由于我的账户有许多字段,并且有些字段可能非常长,因此删除和添加账户相当麻烦。为此,我通过在我的账户认证 XML 文件中使用 android:accountPreferences 将自己的 PreferenceScreen 添加并连接,具体操作可以参考这里的例子: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应用程序都可以从“账户与同步”中执行此操作,尽管两者都不允许多个帐户...
1个回答

1

我认为AbstractAccountAuthenticator中的accountPreferences属性很快就会过时。如果您查看JB中的帐户,如果添加多个帐户,则会显示如下:

  1. account1@gmail.com
  2. account2@gmail.com
  3. Preference

不要使用以下方式:

  1. account1@gmail.com -> Preference
  2. account2@gmail.com -> Preference

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

因此,您应仅使用accountPreferences属性来设置所有帐户都通用的首选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接