2012-02-16 80 views
6

我们试图在托管在不同Android设备上的SQL Lite数据库与中央服务器上托管的SQL Server数据库之间进行同步。由于客户端的先决条件,我们取消了Web服务的使用。可以有另一种方式吗?Android设备上的SQL Lite数据库与SQL Server数据库之间的同步数据库

PS:我们被允许在一天结束时将设备挂接到可以托管Windows服务应用程序的服务器或同步过程的Windows窗体应用程序。

谢谢

+0

数据需要同步到哪个方向? – 2012-02-27 23:37:10

回答

1

你会如何将它们挂到服务器上“一天结束时”?通常情况下,你会在这种情况下做什么是在设备上编写一个自定义应用程序,以便在可能的情况下同步数据。

你可以用各种方法做到这一点。

第一个是编写一个服务,它坐着并检查它是否有能力与Web服务器连接(例如,您可以简单地使用局域网连接并使首选项具有确定服务器的字符串你想同步到),然后以这种方式进行同步。

此服务可以由意图控制。您还可以编写一个脚本,它向adb发出命令,在设备之间来回转换(如果通过USB连接)以进行同步。

我认为最好的方法可能是在您的应用中创建一个“同步”活动。这个活动可以有一个按钮,当按下时通过互联网启动与远程客户端的同步(你说你有,但你怎么连接它?)。

+0

感谢您的回答,你是什么意思的adb,谢谢 – 2012-02-28 07:23:23

+1

adb是一个守护进程,坐落和通信与您的Android设备。这是android调试桥。您可以通过调试桥发出命令(包括意图)。因此,您可以编写一个应用程序来侦听意图,并使用调试桥将意图从计算机发送到设备(只要它通过USB连接,理论上也可以使用WiFi) – 2012-02-28 07:28:11

+0

这看起来像是最好的解决方案,直到现在,谢谢:) – 2012-02-28 07:35:01

1

尽管暴露的Web服务不应该被使用,但是可以在服务器上打开/实现一些HTTP接口/方法,可以调用设备来传递数据。可能是一个专门的Web应用程序,只能写入从您的设备获取数据,该应用程序将负责将内容传递到SQL Server。

使用另一种替代方法[即挂钩设备],您需要以某种商定的格式将设备数据作为文件传输/导出,然后由Windows服务/表单应用程序使用。

+1

是唯一的方法是大量的工作,我使用HTTP休息和每个表中的最后修改/创建列来节省带宽 – max4ever 2012-02-24 11:55:51