我有一個應用程序,我們需要使用一個選項卡進行數據輸入。該選項卡從遠程服務器加載初始數據。隨後,當用戶在選項卡上插入/更新數據時,遠程服務器需要更新,插入(用於新數據)。 Out數據庫服務器是SQL Server 2008.
正如許多stackoverflow專家所建議的,我們將在服務器上使用Webservices以促進數據交換。不過,我仍然不確定以下幾點 -
1.什麼是在這種情況下驗證的最佳機制。
2.我應該從android中的sqlite表中獲取大量數據,轉換爲JSON並將其傳遞給Webservices以進行插入/更新操作或進行單行更新。雖然我認爲發單行將不會有效。
3.如何管理升級遠程服務器失敗。如果我使用單排,這很容易。我的計劃是將sqlite記錄的狀態標誌設置爲1(默認值爲0),以便更新/插入到遠程服務器的記錄。如果更新/插入失敗,我將狀態標誌更改爲0,以便下次再次使用它們。在成功的情況下更改標誌2.關於從Android訪問遠程SQL Server的一些問題
由於事先
UPDATE
DOEN一些研究,並試圖用SampleSyncAdapter。整個操作仍然存在一些混亂。我的Sqlite數據庫是由該應用程序中存在的程序和內容提供者類創建的。該應用程序的軟件包名稱是com.xylo.pds。我試圖編寫一個同步應用程序,它嘗試同步第一個應用程序中使用的數據。如果我遵循SampleSyncAdapter示例 - 我需要開發服務器端應用程序進行身份驗證,然後將android數據上傳到服務器(在我的情況下,有一種方法就足夠了)。我可以在示例中給出的服務器端代碼的幫助下做到這一點。 所以我只是複製我的身份驗證和同步的示例代碼的代碼。我authenticator.xml具有現有entries- android:contentAuthority="com.android.contacts" android:accountType="com.example.android.samplesync
所以現在我的應用程序可以添加帳戶和同步聯繫人。難怪它可以與示例中給出的虛擬服務器ID一起使用。
現在我需要把自己的代碼放在應用程序中,以便我可以將本地數據庫加載到服務器。爲此,我需要在SyncAdapter的onPerformSync中添加代碼。爲了使用現有的ContentProvider,我在清單文件 <uses-permission android:name="com.xylo.pds.RCDataProvider" />
中有以下條目。定義ContentProvider的應用程序具有以下條目 -
<provider android:name=".RCDataProvider" android:authorities="com.xylo.pds.provider" android:exported="true" android:readPermission="android.permission.permRead" />
現在,如果我在SyncAdapter中添加了對contentresolver的調用,並保持其他所有東西都一樣,只是爲了檢查事情是否正常。所以,沒關係,我可以更改onPerformSync以添加上傳數據的代碼。但是現在應用程序會停止sysnc聯繫人。我缺少的東西 請賜教。謝謝
我錯了。 '因此,內容管理機構指定哪個內容提供者將在本地進行同步,並且accountType指定將使用哪個認證者來遠程訪問數據。 accountType還用於獲取同步適配器的特定內容-uri。'可用[這裏](http://stackoverflow.com/questions/8525721/what-are-android-syncadapter-contentauthority-and-accounttype)救了我的一天。 – Dibs