我想为要与服务器同步的内容实现SyncAdapter。似乎需要这样做,您需要注册一个ContentProvider以获得在SyncAdapter XML属性文件中指定的权限。
由于我不希望手机的其余部分可以访问此内容,因此我没有实现自己的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" />
在您的清单中:
<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
当我想安装此应用程序时,我的imo帐户中创建了一些未知的问题,它显示故障并带我进入报告选项。