AbstractAccountAuthenticator仅允许1个帐户

时间:2018-11-19 12:40:32

标签: android android-syncadapter android-authenticator

我已实现AbstractAccountAuthenticator作为使用SyncAdapter的要求,但是我的应用程序一次仅支持1个帐户。

当用户尝试通过设置添加其他帐户时-设置崩溃并显示错误,提示其停止工作。

我看到了一些应用,例如在LinkedIn,Facebook上,他们以不同的方式处理该消息,并向用户显示一条仅支持1个帐户的声明。如何实现此功能?

这是我的身份验证器

Set<Map.Entry<String, ConfigValue>>

1 个答案:

答案 0 :(得分:0)

当用户单击“添加帐户”按钮时,Android只会调用您的ApplicationAuthenticator的{​​{3}}方法。作为回报,它希望创建帐户,启动帐户设置的Intent或错误。

如果您不允许使用多个帐户,则可以在此处选择多个选项:

  • 返回错误代码为addAccount的错误。尽管我还没有尝试过。
  • 作为结果返回您的现有帐户。此时,您还可以显示Toast

    要返回现有帐户,只需让addAccount返回带有以下键及其各自值的Bundle

      

    已添加帐户的AccountManager.KEY_ACCOUNT_NAME和AccountManager.KEY_ACCOUNT_TYPE,或

  • 返回活动Intent,该活动Integer.parseInt( model.getValueAt(i,2).toString() ); 不会创建帐户,但会向用户说明这是不受支持/不必要的操作。并不需要活动实际上添加一个帐户。

    这为IMO提供了最佳的用户体验。