我已经创建了自己的自定义账户并成功地将其添加到应用程序中使用。现在我希望能够编辑账户信息,而不是删除和添加账户。由于我的账户有许多字段,并且有些字段可能非常长,因此删除和添加账户相当麻烦。为此,我通过在我的账户认证 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>
我的问题是,我要么如何将额外信息作为意图传递,要么找到在“设置/账户与同步”中选择的帐户信息。这种自定义帐户类型可以有多个帐户,因此我不能只搜索该类型的任何帐户。我需要来自所选账户的数据。
我的想法大致上是以下几个方面:
- 在xml中包含一些内容以添加额外信息。不知道这是否可行。
- 将意图的目标设为我的AccountAuthenticator类或验证服务,但我如何传递我想编辑的数据呢?由于AbstractAccountAuthenticator具有updateCredentials方法,该方法返回一个包含指向我的数据输入活动的意图的捆绑包,如果我可以传入EDIT操作之类的东西,那可能会起作用。
- 覆盖某个方法以创建自己的意图并携带账户数据。