Frage

Ich möchte ein SyncAdapter einen Inhalt I mit einem Server synchronisieren möchten, implementieren. Es scheint, dass dies zu tun, können Sie einen Contentprovider benötigen für die Behörde registriert Sie in der SyncAdapter Eigenschaft XML-Datei angeben.

Als ich diesen Inhalt nicht auf den Rest des Telefons zugänglich sein will, ich habe meine eigenen Contentprovider nicht umgesetzt und verwendet, um eine persönliche Umsetzung diese Inhalte zu speichern.

Haben Sie wissen, ob es möglich ist, eine Synchronisation, um eine SyncAdapter ohne Verwendung einer Contentprovider zu bieten?

Vielen Dank.

War es hilfreich?

Lösung

Sie müssen immer einen Content-Provider angeben, wenn ein SyncAdapter Umsetzung, aber das ist nicht zu sagen, es hat eigentlich nichts zu tun.

Ich habe SyncAdapters geschrieben, die Konten und die Integration mit dem „Konten & Synchronisierung“ Rahmen in Android erstellen, die nicht unbedingt speichern ihre Inhalte in einem Standard-Provider.

In Ihrem xml / syncadapter.xml:

<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android" 
    android:accountType="com.company.app"
    android:contentAuthority="com.company.content"
    android:supportsUploading="false" />

In Ihrem Manifest:

<provider android:name="DummyProvider"
    android:authorities="com.company.content"
    android:syncable="true"
    android:label="DummyProvider" />   

Und dann einen Dummy-Anbieter hinzufügen, die nichts tun, außer nützlich exist, DummyProvider.java:

public class DummyProvider extends ContentProvider {

    @Override
    public int delete(Uri uri, String selection, String[] selectionArgs) {
         return 0;
    }

    @Override
    public String getType(Uri uri) {
        return null;
    }

    @Override
    public Uri insert(Uri uri, ContentValues values) {
        return null;
    }

    @Override
    public boolean onCreate() {
        return false;
    }

    @Override
    public Cursor query(Uri uri, String[] projection, String selection,
                    String[] selectionArgs, String sortOrder) {
        return null;
    }

    @Override
    public int update(Uri uri, ContentValues values, String selection,
                    String[] selectionArgs) {
        return 0;
    }
}

Andere Tipps

Nun, auch die offizielle Dokumentation von Google vor, dass Sie einen Stub (Dummy) ContentProvider verwenden.

https://developer.android.com/training/sync-adapters/ index.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top