this is my manifest file <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.c99.SyncProviderDemo" android:versionCode="1" android:versionName="1.0">
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.READ_SYNC_STATS" /> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> <application android:icon="@drawable/icon" android:label="@string/ app_name"> <activity android:name=".LoginActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.VIEW" /> </intent-filter> </activity> <activity android:name=".ProfileActivity" android:label="Profile"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="vnd.android.cursor.item/ vnd.org.c99.SyncProviderDemo.profile" /> </intent-filter> </activity> <service android:name=".AccountAuthenticatorService" android:exported="true"> <intent-filter> <action android:name="android.accounts.AccountAuthenticator" /> </intent-filter> <meta-data android:name="android.accounts.AccountAuthenticator" android:resource="@xml/authenticator" /> </service> <service android:name=".ContactsSyncAdapterService" android:exported="true" > <intent-filter> <action android:name="android.content.SyncAdapter" /> </intent-filter> <meta-data android:name="android.content.SyncAdapter" android:resource="@xml/syncadapter" /> <meta-data android:name="android.provider.CONTACTS_STRUCTURE" android:resource="@xml/contacts" /> </service> </application> <uses-sdk android:minSdkVersion="5" /> </manifest> thanks On Jan 31, 4:53 pm, Dmitri Plotnikov <dplotni...@google.com> wrote: > I would double-check every line of AndroidManifest.xml, compare it with the > one in SampleSyncAdapter to see if anything's missing. > > On Mon, Jan 31, 2011 at 4:26 PM, himanshu jain <himanshu....@gmail.com>wrote: > > > > > > > > > @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><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><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