【问题标题】:Is it possible to override the Accounts & Sync 'Remove Account' functionality是否可以覆盖帐户和同步“删除帐户”功能
【发布时间】:2012-04-08 03:36:25
【问题描述】:

我正在开发具有同步适配器和身份验证器的应用程序,用于通过 Android 帐户管理器添加帐户。我有以下两个问题:

1) 可以覆盖“帐户与同步”中“添加帐户”按钮的功能,但我找不到覆盖“删除帐户”按钮功能的方法 - 这可能吗?

2) 我读到验证器可以防止删除他们的帐户,但我不知道如何...有人知道如何将其添加到验证器中吗?这样我也许可以使用 AbstractAccoutnAuthenticator.getAccountRemovalAllowed 来实现我想要的功能。

谢谢

【问题讨论】:

    标签: android accountmanager accounts


    【解决方案1】:

    回答你的第二个问题:

    假设你的包名是 com.companyname

    在 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" />
    

    假设您的帐户类型是“com.companyname”。这就是我们所做的,它似乎从 API 8 开始就可以工作了。

    【讨论】:

      【解决方案2】:

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

      虽然不建议返回 false。因为它会返回一个对话框,告诉用户一些非常可怕的事情(类似于您需要恢复出厂设置的内容)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-24
        • 2018-11-01
        相关资源
        最近更新 更多