addAccountExplyly成功,但没有在设置/帐户中显示任何帐户
我已经写了一些代码来添加我的自定义帐户设置 虽然点击添加帐户我可以看到我的自定义帐户,当点击时我显示登录表单。这里面我打电话下面的代码addAccountExplyly成功,但没有在设置/帐户中显示任何帐户
if (mAccountManager.addAccountExplicitly(account, password, userData)) {
// worked
System.out.println("Account added");
} else {
// guess not
System.out.println("NOT DONE");
}
第一次显示“添加帐户”,但不能看到设置/帐户什么。 请帮助我。
下面是完整的代码
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);
我注意到你发送的帐户类型错误的值。该值需要与authenticator.xml中的android:accountType匹配。
data.putString(AccountManager.KEY_ACCOUNT_TYPE,mAuthTokenType);
我有同样的问题,并发现,当机器人:标签字段中authenticator.xml(或任何XML文件你指着在AndroidManifest.xml您的认证服务定义)不包含一个本地化的字符串的帐户不会显示在设置下。
即,这不起作用: 机器人:标签= “我的应用”
但确实: 机器人:标签= “@字符串/ my_app应用”
感谢的人,真正起作用,那是很愚蠢的,花了我一个工作日......不是关于这个问题的一个字android的文档! –
尽量正确地检查,如果你在AndroidManifest文件中填写有关SyncService和SyncAdapter的数据。这对我有帮助。
这一个在清单:
<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>
而这一次在syncadapter.xml:
<?xml version="1.0" encoding="utf-8"?>
<sync-adapter
xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="com.example.android.datasync.provider"
android:accountType="example.com"
android:userVisible="true"
android:supportsUploading="true"
android:allowParallelSyncs="false"
android:isAlwaysSyncable="true"/>
您的登录形式应该是AccountAuthenticatorActivity'的'一个子类,否则将不显示上设置 – chip