-1

嗯,我不知道从哪里开始。我是 android 编程新手。我的任务是将android上的sqlite与windows azure中的ms sql数据库同步。我发现 selvins syncframework 应该可以满足我的需要。 http://selvinlistsyncsample.codeplex.com/

我还需要什么吗?

在他的文档中,他描述了如何“将 SyncFramework 添加到自己的项目:”。首先在manifest中添加这两行,ok,没问题。然后构建扩展basecontentprovider的providerclass,好的,但它应该是空的吗?basecontentprovider 中是否包含所有内容?然后添加你的数据库定义,ok,没问题。然后是 Setup.class:

  • 在 getServiceUrl():我必须把哪个 url 放在那里?数据库中的 url 或在 windows azure 中创建的移动服务中的 url 还是什么?

  • 在 getAuthority():我没有名为 Authority 的包或类,上面没有任何内容。

最后是“如何进行同步”:

  • 在 getSynUri() 处:是否必须与这两个字符串完全相同?还是我必须更换它们?如果是这样,用什么替换?

  • 在 getContentResolver().update(): 我不明白第三个参数。必须要准确吗?或者这是什么意思,我必须更换它吗?

4

1 回答 1

0

首先,我不确定您是否可以将我的项目与 Azure 一起使用……它是为与MSSFT一起工作而创建的……对于 Azure,您可以找到示例fx。:here

好的,但它应该是空的吗?

这取决于:BaseContentProvider 提供了使用简单表的所有功能......如果你想添加 sql 视图支持或加入其他表,你必须覆盖一些方法(查询、更新、删除、插入)

... getServiceUrl() ...

问题是我真的不知道......正如我在回答开头所说的那样,我不确定这段代码是否可以与 Azure 一起使用......通常你必须将 URL 放到你有代码的地方从在您的 IIS 上设置的"Microsoft Sync Framework Toolkit.zip\C#\Samples\ListService"此处下载...

... getAuthority() ...

与您在 AndroidManifest.xml ( provider->android:authorities="com.example.Project.Authority")中放入的相同

...getSynUri()...

再次...它与...连接"Microsoft Sync Framework Toolkit.zip\C#\Samples\ListService"...下载示例,您将看到该文件DefaultScopeSyncService.SVC,因此 getSyncUri 的第一个参数将是DefaultScopeSyncService(您可以在那里拥有多个服务)...第二个参数是DefaultScopeSyncService.SVC.cs来自行的范围config.SetEnableScope("DefaultScope")...

...getContentResolver().update()...

实际上应该call不是update,但是由于我使用的 API < 11 中没有这样的方法update...如果您update使用特殊的 URI(getSynUri()) 调用,BaseContentProvider 将调用同步代码,第三个参数用于模板范围过滤器服务器端(再次看到这DefaultScopeSyncService.SVC.csconfig.AddFilterParameterConfiguration("userid", "User", "@ID", typeof(System.Guid));成为参数,就像"userid=some-guid"在 android 端

于 2013-09-16T08:56:42.603 回答