2011-01-19 10 views
7

Mi chiedevo è possibile estendere il database dei contatti Android?Posso estendere il database dei contatti di Androids?

Da qui - http://d.android.com/reference/android/provider/ContactsContract.html

Si dice:

ContactsContract definisce uno estensibile banca dati di contatto relative informazioni

Extensible suggerisce a me che posso aggiungere in più dati per l'applicazione contatti al di fuori dei valori normali come nome, numero, email, numero di lavoro, numero di casa ecc.

Tuttavia gli esempi di questa pagina - http://d.android.com/reference/android/provider/ContactsContract.RawContacts.html mostrano solo come inserire i valori standard come nome e non come aggiungere un nuovo campo a un contatto.

Inoltre una ricerca sul Web non restituisce molte informazioni sull'estensione dei dati dei contatti.

Quindi mi chiedevo se è possibile o l'estensibile si riferisce ad un'altra parte dei contatti?

Ad esempio, vorrei aggiungere in un campo aggiuntivo per i contatti che dispongono di privilegi speciali all'interno della mia app in modo che quando un utente guarda i contatti sa quali utenti possono usare la mia app con.

È possibile?

risposta

2

È possibile memorizzare dati personalizzati nel database dei contatti. Tuttavia "quando un utente guarda i contatti sa quali utenti possono usare la mia app con", potrebbe non essere possibile se pensi che gli utenti saranno in grado di vedere i dati personalizzati che hai inserito mentre utilizzi i contatti Android integrati applicazione. Dovresti visualizzare i dati personalizzati nella tua applicazione.

Le javadoc per la classe ContactsContract.Data devono fornire una spiegazione, nonché Contacts article.

Per utilizzare questo è necessario ottenere un ID contatto crudo interrogando il RawContacts.

Ecco qualche esempio di codice che potrebbero aiutarti a iniziare ...

private void makePowerful(int rawContactId) { 
    ContentValues values = new ContentValues(); 
    values.put(Privilege.RAW_CONTACT_ID, rawContactId); 
    values.put(Privilege.MIMETYPE, Privilege.CONTENT_ITEM_TYPE); 
    values.put(Privilege.PRIVILEGE_LEVEL, Privilege.TYPE_POWERFUL); 
    Uri uri = getContentResolver().insert(Data.CONTENT_URI, values); 
} 

public static final class Privilege implements ContactsContract.DataColumnsWithJoins, ContactsContract.CommonDataKinds.CommonColumns { 
    public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + "/my_app_privilege"; 
    public static final int TYPE_POWERFUL = 1; 
    public static final int TYPE_WEAK = 2; 
    public static final String PRIVILEGE_LEVEL = DATA1; 

    private Privilege() { } 
} 
+0

Hai idea di dove l'articolo è andato a contatti? Il collegamento è morto (: –

+0

Ho aggiornato il collegamento, questo dovrebbe aiutare: http://developer.android.com/guide/topics/providers/contacts-provider.html – satur9nine

+0

Grazie. È per indagare su un problema strano I avere con il database dei contatti: http://wiert.me/2012/07/24/small-follow-up-on-android-help-needed-app-that-cleans-up-the-contacts-mess-that- the-linkedin-app-left-behind/(580 meg grande, e crescita automagicamente senza nessuna app attiva) –

Problemi correlati