@Dmitri Yes i created my account when i go to Account & sync section through settings and after adding my account , sync gets enabled in DDMS i can see SyncManager gets called twice once on setIsSyncable and on setSyncAutomatically but My Service associated with SyncAdapter does not gets started and also i dont reach to onPerformSync immediately when i explicitly call requestSync.
thanks On Jan 31, 4:11 pm, Dmitri Plotnikov <dplotni...@google.com> wrote: > Do you see your account in Settings/Accounts? Does it have contact syncing > enabled? > > On Mon, Jan 31, 2011 at 2:44 PM, himanshu jain <himanshu....@gmail.com>wrote: > > > > > > > > > @Dmitri > > > thanks once again > > > But why my SyncService not gets started by SyncManager on Device i > > dont know , and i explicitly call requestSync flow is not going inside > > onPerformSync.? > > > thanks > > > On Jan 31, 1:49 pm, Dmitri Plotnikov <dplotni...@google.com> wrote: > > > Sending requestSync to contentresolver is the right way to go if you want > > an > > > explicit button to request sync. This is what applications like Calendar > > and > > > Gmail do when you push the "Sync" button. ContentProvider will also > > request > > > sync whenever there is a change in the data. > > > > You should query raw contacts that have the DIRTY flag set. These are > > the > > > added, deleted or changed contacts. Your sync adapter should reset this > > > flag after syncing up changes. It also needs to physically remove > > deleted > > > contacts from the database. In both cases it needs to supply the > > > CALLER_IS_SYNCADAPTER query parameter - otherwise the protocol won't > > work. > > > > Cheers, > > > - Dmitri > > > > On Mon, Jan 31, 2011 at 1:37 PM, himanshu jain <himanshu....@gmail.com > > >wrote: > > > > > @Dmitri > > > > > Thanks a lot for spending time to answer my questions at least some > > > > doubts are faded off. > > > > > 1) I understand to use own activity for editing and creating new > > > > contacts. > > > > > 2) Ok, if i avoid ContentObserver even i had that in mind might > > > > require something to be running in background which is bad agreed. > > > > > 3) But, there are two use cases first if there is a button that say > > > > sync now and i send request using requestSync() method will it start > > > > immediate sync via SyncManager or again it will depend upon > > > > SyncManager discretion?? if thats true i cannot start immediate > > > > Sync ??. > > > > > Second use case how would i know if there is a change corresponding > > > > to my account in raw_contact utilizing best practice push > > > > notification ?? so that i can trigger syncing. > > > > > thanks Dimitri for your time and ideas > > > > > On Jan 30, 11:42 am, Dmitri Plotnikov <dplotni...@google.com> wrote: > > > > > Hi Himanshu, > > > > > > 1) SampleSyncAdapter is still a good source of inspiration. It has > > some > > > > > issues and plan to have them fixed in the nearest future. > > > > > > 2) In releases of Android from Eclair through Gingerbread integrated > > > > editing > > > > > of 3rd party contacts is poorly supported. The trick is to insert a > > data > > > > > row, "Edit in MyApp", which would take the user to your app and your > > app > > > > > would then provide an editor activity. Also, there is no provision > > in > > > > the > > > > > Contacts UI for creating new contacts in 3rd party accounts. We have > > > > fixed > > > > > those issues in Honeycomb. Now you can specify two activities in > > your > > > > > metadata xml file: one for creating new contacts and one for editing > > > > > existing ones and voilà! - you have seamless integration. Of course, > > > > it's a > > > > > bit too soon to rely on Honeycomb as the dominant version of Android > > ;-) > > > > So > > > > > for now you will need to either go with the described hack or only > > allow > > > > > creation/editing of contacts through your app. > > > > > > 3) Please consider an alternative to using content observers for a > > sync > > > > > adapter. There are several reasons: > > > > > > - In order to receive notifications, your process will need to be > > running > > > > at > > > > > all times. Or it would have to have a broadcast receiver, which is > > very > > > > very > > > > > costly. > > > > > - Content observer notifications are not reliable. If your process > > is > > > > not > > > > > running at the time the change occurs, the notification will never be > > > > > delivered. A broadcast receiver will solve that problem, but please > > > > don't > > > > > use broadcast receivers for this! > > > > > - Contacts provider sends out non-discriminated notifications. > > Whenever > > > > > anything (e.g. chat presence) changes, all observers are notified > > whether > > > > > they have supplied a specific URI or not. > > > > > > What you do want to use is the DIRTY flag and the > > CALLER_IS_SYNCADAPTER > > > > > query parameter and let SyncManager invoke your sync adapter. It > > does > > > > some > > > > > sophisticated scheduling and you want to take advantage of it. > > > > > > Cheers, > > > > > - Dmitri > > > > > > On Fri, Jan 28, 2011 at 4:22 PM, himanshu jain < > > himanshu....@gmail.com > > > > >wrote: > > > > > > > Hi All, > > > > > > > I am trying to implement two way sync. > > > > > > > 1) I tried using SampleSyncAdapter Code first it works on emulator > > but > > > > > > not on Device , then i tried to write SyncAdapter with SyncService > > as > > > > > > a demo app with AccountAuthenticator, as per Documentation for > > > > > > SampleSyncAdapter SyncService gets called on > > > > > > ACTION_AUTHENTICATOR_INTENT but my service does not gets started on > > > > > > device , i defined service in manifest and all things but does not > > > > > > work on device it gets started on Emulator. > > > > > > > 2) If i port my app on device i can see only first name and last > > name > > > > > > fields how can i see all the fields available for contact > > > > > > application ?? can i edit them also utilizing the same native > > > > > > editor??. > > > > > > > 3) I planning to add contentobserver for sync from device to cloud > > > > > > whenever there is change corresponding to my account in contact > > table > > > > > > i want to sync it after listening through contentobserver.Is that > > > > > > correct ??. > > > > > > > thanks > > > > > > > -- > > > > > > You received this message because you are subscribed to the Google > > > > > > Groups "Android Developers" group. > > > > > > To post to this group, send email to > > > > android-developers@googlegroups.com > > > > > > To unsubscribe from this group, send email to > > > > > > android-developers+unsubscr...@googlegroups.com<android-developers%2Bunsubs > > > > > > cr...@googlegroups.com><android-developers%2Bunsubs > > cr...@googlegroups.com><android-developers%2Bunsubs > > > > cr...@googlegroups.com> > > > > > > For more options, visit this group at > > > > > >http://groups.google.com/group/android-developers?hl=en > > > > > -- > > > > You received this message because you are subscribed to the Google > > > > Groups "Android Developers" group. > > > > To post to this group, send email to > > android-developers@googlegroups.com > > > > To unsubscribe from this group, send email to > > > > android-developers+unsubscr...@googlegroups.com<android-developers%2Bunsubs > > > > cr...@googlegroups.com><android-developers%2Bunsubs > > cr...@googlegroups.com> > > > > For more options, visit this group at > > > >http://groups.google.com/group/android-developers?hl=en > > > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to android-developers@googlegroups.com > > To unsubscribe from this group, send email to > > android-developers+unsubscr...@googlegroups.com<android-developers%2Bunsubs > > cr...@googlegroups.com> > > For more options, visit this group at > >http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en