制作双向联系人同步适配器

时间:2012-06-14 16:07:33

标签: android android-contacts android-syncadapter

亲爱的Stackoverflowers你好!

我使用Android 2.3.3的CardDAV同步源,我不明白这个想法。 我仔细阅读了有关samplesyncadaptater的文件,该文件仅用于阅读远距离服务的联系人 但就我而言,我正在尝试添加一个源代码,以便从服务器读取联系人并将联系人写入服务器。

此时:
- 当您想在Android中添加同步源时,我的项目会出现 - 我可以参数化我的源和身份验证工作
- 当我去联系应用程序并转到帐户可见性选项(菜单名称取决于您的手机ROM)时,我可以选择我的来源以显示其联系人
- 但是当我尝试创建联系人时,只提供了我的Gmail和Outlook来源。 也许我想念我需要的各种xml文件。

Plz帮助我,我把不同的xml文件...

这是 Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest package="android.carddav"
android:versionCode="1"
android:versionName="1.0" xmlns:android="http://schemas.android.com/apk/res/android">
    <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_EXTERNAL_STORAGE" />
<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" />

<uses-sdk android:minSdkVersion="10" />

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name" >
    <service
        android:name=".authenticator.AuthenticationService"
        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=".syncadapter.SyncService"
        android:exported="true" android:enabled="true">
        <intent-filter>
            <action
                android:name="android.content.SyncAdapter" />
        </intent-filter>
        <meta-data
            android:name="android.content.SyncAdapter"
            android:resource="@xml/syncadapter" />

    </service>
    <activity
        android:name=".authenticator.CardDAVActivity"
        android:label="@string/app_name" 
        android:excludeFromRecents="true">
    </activity>
</application>
</manifest>  

这是 syncadaptater.xml
    

最后是 authenticator.xml
             

1 个答案:

答案 0 :(得分:0)

我的回答是: https://stackoverflow.com/a/11153652/1195001 您需要使用所需的数据字段创建活动,并使用链接中的intent过滤器调用它。