我收到以下异常;我知道它没什么要继续的,但是那里几乎没有工作文档。可以说,我已经尝试了有关实现自己的Authenticator的所有示例。
我找到了一个建议的答案here来修复我的 list 文件(声明服务)。已经做到了,问题仍然存在。
我最初的解决方案是基于this example: write-your-own-android-authenticator
W/System.err﹕ android.accounts.AuthenticatorException: bind failure
W/System.err﹕ at Android.accounts.AccountManager.convertErrorToException(AccountManager.java:2024)
W/System.err﹕ at android.accounts.AccountManager.access$400(AccountManager.java:144)
W/System.err﹕ at android.accounts.AccountManager$AmsTask$Response.onError(AccountManager.java:1867)
W/System.err﹕ at android.accounts.IAccountManagerResponse$Stub.onTransact(IAccountManagerResponse.java:69)
W/System.err﹕ at android.os.Binder.execTransact(Binder.java:446)
最佳答案
我也有同样的情况。到处搜索,但没有运气。实际上,关于android authenticator
的资源和教程很少。我还提到了同一篇文章udinic:write your own android authenticator。
它不是那么详细,很容易迷路。我实际上在accountType
中更改了自己的authenticator.xml
,却忘记了在AccountGeneral
类中进行更改。
两者应该相同,否则您的 Activity 将不会绑定(bind)到AuthenticatorService
进行回调。authenticator.xml
<?xml version="1.0" encoding="utf-8" ?><account-authenticator
xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="your_account_type_name"
android:icon="@drawable/ic_navigate_before"
android:smallIcon="@drawable/ic_navigate_before"
android:label="@string/label"
android:accountPreferences="@xml/prefs"/>
AccountGeneral.java
公共(public)类AccountGeneral {/**
* Account type id
*/
public static final String ACCOUNT_TYPE = "your_account_type_name";
/**
* Account name
*/
public static final String ACCOUNT_NAME = "your_account_name";
/**
* Auth token types
*/
public static final String AUTHTOKEN_TYPE_READ_ONLY = "Read only";
public static final String AUTHTOKEN_TYPE_READ_ONLY_LABEL = "Read only access to an FitDodo account";
public static final String AUTHTOKEN_TYPE_FULL_ACCESS = "Full access";
public static final String AUTHTOKEN_TYPE_FULL_ACCESS_LABEL = "Full access to an FitDodo account";
public static final ServerAuthenticate sServerAuthenticate = new ParseComServerAuthenticate();
}我希望你觉得这有帮助。