ContentProviderのないSyncadapter
-
09-10-2019 - |
質問
サーバーと同期したいコンテンツのSyncadapterを実装したい。そうするには、Syncadapter XMLプロパティファイルで指定した権限に登録されたContentProviderが必要です。
このコンテンツを残りの電話にアクセスできるようにしたくないので、自分のコンテンツパバイダーを実装しておらず、このコンテンツを保存するために個人的な実装を使用しました。
ContentProviderを提供せずにSyncadapterを使用して同期を提供できるかどうかを知っていますか?
どうもありがとうございます。
解決
Syncadapterを実装する際には常にコンテンツプロバイダーを指定する必要がありますが、実際に何もしなければならないということではありません。
アカウントを作成し、Androidの「Accounts&Sync」フレームワークと統合するSyncadaptersを作成しました。
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" />
あなたのマニフェストで:
<provider android:name="DummyProvider"
android:authorities="com.company.content"
android:syncable="true"
android:label="DummyProvider" />
そして、存在する以外に何も役に立たないダミープロバイダーを追加します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;
}
}
他のヒント
さて、Googleによる公式のドキュメントでさえ、スタブ(ダミー)を使用することを提案しています ContentProvider
.
https://developer.android.com/training/sync-adapters/index.html
所属していません StackOverflow