2010-11-02 5 views
5

Sto scrivendo un'app di social networking con funzionalità di sincronizzazione dei contatti. Ho un codice funzionante (da un esempio ho trovato here) che inserisce i contatti su v2.x in un adattatore di sincronizzazione.Android 1.x Contacts.Extensions per un tipo di account personalizzato?

Tuttavia, il software Motorola Blur non riconosce i contatti 2.x (sto usando una Moto 2.2 costruire su un Droid X). Blur usa l'API 1.x dei contatti, ma ho difficoltà a trovare/comprendere esempi su come usarlo. This page mostra come eseguire una query per nome, ma voglio a) add e b) eseguire query su un account personalizzato (o potenzialmente MIME).

Il codice v2 sto usando crea un nuovo contatto cruda, crea un set di dati "StructuredName", e poi un set di dati di tipo MIME personalizzato.

Come si esegue l'equivalente sull'API 1.x (livello 3)? Penso che questo è ciò che è per la classe Contacts.Extensions, ma la documentazione non è chiara al meglio.

risposta

1

Le modifiche Motorola sfocatura a contatti hanno più a che fare con il modo gli account vengono gestiti sul dispositivo e meno con le modifiche al fornitore di contenuti. Il vero problema quando si lavora con un dispositivo Motorola BLUR è che è necessario impostare ACCOUNT_NAME e ACCOUNT_TYPE su un valore che funzioni correttamente con il dispositivo.

Motorola non è l'unico dispositivo per il quale questo è un problema come nel mio lavoro. Ho trovato altri dispositivi le cui applicazioni di contatti non funzionano con i record aggiunti agli account personalizzati sul dispositivo.

Durante l'installazione, si dovrà determinare che tipo di dispositivo è in esecuzione su e poi fare una determinazione di ciò conto che verrà utilizzato per memorizzare i contatti. Ho trovato eccezioni per i dispositivi Samsung Galaxy, HTC Sense e MOTOBLUR per i quali l'utilizzo di un account di contatto personalizzato non consente di lavorare con i contatti nell'applicazione di contatto (ad esempio, è possibile aggiungerli ma non modificarli o impossibile inserire nuovi record nel tuo account).

non posso condividere il codice perché appartiene al mio lavoro, ma vi posso dire che se si utilizza il seguente conto corrente per i contatti su dispositivi MOTOBLUR che funzionerà. I dispositivi Motorola su Verizon hanno un account assistente di backup che funziona alla grande e altri saggi io uso l'account BLUR predefinito che sembra funzionare bene.

Cercare un account sul dispositivo con il tipo com.motorola.android.buacontactadapter e un nome di "Telefono" e utilizzarlo. Se non è presente, cerca un account del tipo com.motorola.blur.service.bsutils.MOTHER_USER_CREDS_TYPE e utilizzalo (con qualsiasi nome) e sarai impostato su tutti i dispositivi Motorola.

Se condividi parte del tuo codice o un link all'esempio a cui fai riferimento, sarei felice di immergerti più a fondo.

+0

L'esempio che ho usato era questo: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-2/ Ho (felicemente) trovato fuori che su BLUR> 2.2 (pan di zenzero +) l'app sfocatura contatti troverà e lavorerà felicemente con i miei contatti API v2.x. Le versioni precedenti sono ancora infelici. –

+0

Motorola ha appreso l'errore dei loro modi, le versioni recenti di BLUR (post stable4) funzioneranno per te.Sfortunatamente, non aggiornano i dispositivi più vecchi, quindi solo il tempo curerà i tuoi mali. –

+0

Sembra che il tempo abbia risolto questo male. Quasi nessuno dei miei utenti ha più di 2.2. Accetterò questa risposta anche se non ho provato questo approccio. Grazie per lo sforzo che ci hai dedicato. –

1

Per affrontare la fine della tua domanda:

Questa infrastruttura è supportato solo per la struttura contatti 2.x, questo è quando hanno introdotto esso.

Le app Contatti OEM su dispositivi 1.X possono funzionare o meno in modo simile.