2015-04-21 2 views
0

J'ai créé un compte personnalisé pour mon application en utilisant le code suivant:Android de contact programme inséré n'est pas lié à mon application

Account account = new Account(username, accountType); 
    ContentResolver.setIsSyncable(account, context.getString(R.string.CONTACT_AUTHORITY), 1); 
    ContentResolver.setSyncAutomatically(account, context.getString(R.string.CONTACT_AUTHORITY), true); 
    if(accManager.addAccountExplicitly(account, password, userData)) { 
     Intent intent = new Intent(); 
     intent.putExtra(AccountManager.KEY_ACCOUNT_NAME, account.name); 
     intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE, account.type); 
     intent.putExtra(AccountManager.KEY_AUTHTOKEN, account.type); 
     context.setAccountAuthenticatorResult(intent.getExtras()); 
     context.setResult(Activity.RESULT_OK); 
     return account; 
    } else { 
     // display error 
    } 

Et puis j'ai essayé d'insérer un nouveau contact en utilisant les éléments suivants:

J'ai été en mesure d'insérer le nouveau contact, mais le problème est que lorsque je regarde ce contact dans ma liste de contacts, il n'a pas l'icône de mon application dans la section 'Connecté Via' icône, une idée pourquoi? J'utilise samsung S5 pour tester BTW.

enter image description here

Répondre

1

J'ai finalement résolu, le problème réside en l'absence d'une mise en œuvre de services SyncAdapter. Après avoir ajouté ce qui suit dans AndroidManifest.xml, le problème a été résolu.

<service 
     android:name=".authenticator.ContactsSyncAdapterService" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="android.content.SyncAdapter" /> 
     </intent-filter> 
     <meta-data 
      android:name="android.content.SyncAdapter" 
      android:resource="@xml/sync_contacts" /> 
    </service>