我已经写了一些代码来在设置中添加我的自定义帐户 点击添加帐户后,我可以看到自定义帐户,点击时我会显示登录表单。在里面我打电话给下面的代码
Log.d("AuthenticatorActivity", "onCreate");
mAccountManager = AccountManager.get(getBaseContext());
String accountName = getIntent().getStringExtra(ARG_ACCOUNT_NAME);
mAuthTokenType = getIntent().getStringExtra(ARG_AUTH_TYPE);
if (mAuthTokenType == null)
mAuthTokenType = AccountGeneral.AUTHTOKEN_TYPE_FULL_ACCESS;
accountName= "test55";
findAccount(accountName);
System.out.println(mAuthTokenType + "accountName : " + accountName);
Bundle data = new Bundle();
data.putString(AccountManager.KEY_ACCOUNT_NAME, accountName);
data.putString(AccountManager.KEY_ACCOUNT_TYPE, mAuthTokenType);
data.putString(AccountManager.KEY_AUTHTOKEN, authtoken);
data.putString(PARAM_USER_PASS, password);
Bundle userData = new Bundle();
userData.putString("userObjectId", "2");
data.putBundle(AccountManager.KEY_USERDATA, userData);
final Intent res = new Intent();
res.putExtras(data);
final Account account = new Account(accountName, "com.coderzheaven.auth_example");
if (mAccountManager.addAccountExplicitly(account, password, userData)) {
// worked
System.out.println("DONE");
} else {
// guess not
System.out.println("NOT DONE");
}
mAccountManager.addAccountExplicitly(account, password, userData);
mAccountManager.setAuthToken(account, mAuthTokenType, authtoken);
setAccountAuthenticatorResult(data);
setResult(RESULT_OK, res);
第一次显示"帐户已添加",但无法在设置/帐户中看到任何内容。 任何人都可以帮助我。
这是完整的代码
{{1}}
答案 0 :(得分:9)
我遇到了同样的问题,发现当authenticator.xml中的android:label字段(或者您在AndroidManifest.xml中的身份验证服务定义中指向的任何xml文件)不包含该帐户的本地化字符串时未显示在“设置”下。
即,这不起作用: android:label =“我的应用”
但是这样做: 机器人:标签= “@串/ my_app应用”
答案 1 :(得分:0)
我注意到您为帐户类型发送了错误的值。该值需要匹配authenticator.xml中的android:accountType。
data.putString(AccountManager.KEY_ACCOUNT_TYPE, mAuthTokenType );
答案 2 :(得分:0)
尝试检查您是否在AndroidManifest文件中正确填写了有关SyncService和SyncAdapter的数据。这对我有帮助。
这一个在清单中:
qrScanner.on 'scan', (err, message) ->
alert(message) if message?
这个在syncadapter.xml中:
<service android:name=".Model.Sync.SyncService"
android:exported="true">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
</service>