【发布时间】:2015-01-01 12:05:23
【问题描述】:
我想在设置中创建自定义应用帐户。
问题
-
settings > Add account中有一个带有图标但没有名称的选项 - 当点击那个(添加帐户)时,
AuthenticatorActivity不会启动。我调试了Authenticator类,调用了addAccount方法但没有弹出任何活动。
我做了以下步骤:
验证器类(部分)
public class AccountAuthenticator extends AbstractAccountAuthenticator{
@Override
public Bundle addAccount(AccountAuthenticatorResponse response,
String accountType, String authTokenType,
String[] requiredFeatures, Bundle options)
throws NetworkErrorException {
final Intent intent = new Intent(mContext, AuthenticatorActivity.class);
intent.putExtra(AuthenticatorActivity.ARG_ACCOUNT_TYPE, accountType);
intent.putExtra(AuthenticatorActivity.ARG_AUTH_TYPE, authTokenType);
intent.putExtra(AuthenticatorActivity.ARG_IS_ADDING_NEW_ACCOUNT, true);
intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response);
final Bundle bundle = new Bundle();
bundle.putParcelable(AccountAuthenticator.KEY_INTENT, intent);
return bundle;
}
}
AuthenticatorService
public class AuthenticatorService extends Service{
@Override
public IBinder onBind(Intent intent) {
authenticator = new AccountAuthenticator(this);
return authenticator.getIBinder();
}
}
清单
<service android:name="com.voillo.utils.AuthenticatorService" android:exported="false"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
<meta-data android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator" />
</service>
身份验证器 xml
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="com.example.myapp"
android:icon="@drawable/myapp_icon"
android:smallIcon="@drawable/myapp_icon_small"
android:label="myapp"
/>
【问题讨论】:
-
我刚刚遇到了类似的问题,结果证明我没有在清单 (facepalm) 中添加身份验证器活动作为活动。确保这不是您的问题。