是否可以重写帐户和同步“删除帐户”function

我正在使用具有同步适配器和身份validation器的应用程序,通过Android帐户pipe理器添加帐户。 我有以下两个问题:

1)可以在帐户和同步中覆盖“添加帐户”button的function,但我找不到一种方法来覆盖“删除帐户”button的function – 这可能吗?

2)我已经阅读authentication可以防止删除他们的帐户,但我不知道如何……有人知道我可以如何将其添加到我的authenticator? 这样我可能能够使用AbstractAccoutnAuthenticator.getAccountRemovalAllowed获得我想要的function。

谢谢

Solutions Collecting From Web of "是否可以重写帐户和同步“删除帐户”function"

要回答你的第二个问题:

假设你的包名是com.companyname

创build一个在包com.companyname.auth中扩展AbstractAccountAuthenticator的Authenticator类,并在其上实现此方法:

@Override public Bundle getAccountRemovalAllowed(AccountAuthenticatorResponse response, Account account) { Bundle result = new Bundle(); boolean allowed = false; // or whatever logic you want here result.putBoolean(AccountManager.KEY_BOOLEAN_RESULT, allowed); return result; } 

将此添加到清单:

  <service android:name=".auth.AuthenticationService"> <intent-filter> <action android:name="android.accounts.AccountAuthenticator"></action> </intent-filter> <meta-data android:name="android.accounts.AccountAuthenticator" android:resource="@xml/authenticator"></meta-data> </service> 

(请注意,lint会提示此导出的服务不需要权限)。

然后在res / xml中添加authenticator.xml文件:

 <?xml version="1.0" encoding="utf-8"?> <account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" android:accountType="com.companyname" android:icon="@drawable/app_icon" android:smallIcon="@drawable/app_icon_small" android:label="@string/app_name" /> 

假设您的帐户types是“com.companyname”。 这就是我们所做的,它似乎是从API 8起。

以前的用户是正确的。 然而,没有办法自定义对话框(文档谎言,说你可以返回一个自定义屏幕的意图,这显然不是在代码中实现)。

不推荐返回false。 由于它返回一个对话框,用于说明对用户来说非常可怕的事情(沿着你需要做出厂重置的事情)