gpt4 book ai didi

android - 没有 ContentProvider 的 SyncAdapter

转载 作者:IT王子 更新时间:2023-10-29 00:06:12 25 4
gpt4 key购买 nike

我想为要与服务器同步的内容实现 SyncAdapter。看来要这样做,您需要为您在 SyncAdapter XML 属性文件中指定的权限注册一个 ContentProvider。

由于我不希望手机的其他部分可以访问此内容,因此我没有实现自己的 ContentProvider 并使用个人实现来存储此内容。

您知道是否可以在不提供 ContentProvider 的情况下使用 SyncAdapter 提供同步?

非常感谢。

最佳答案

在实现 SyncAdapter 时,您总是必须指定内容提供者,但这并不是说它实际上必须做任何事情。

我编写了 SyncAdapter 来创建帐户并与 Android 中的“帐户和同步”框架集成,这些框架不一定将其内容存储在标准提供程序中。

在您的 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" />

在您的 list 中:

<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;
}
}

关于android - 没有 ContentProvider 的 SyncAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4649808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com