2013-02-03 111 views
2

我正在創建一個應用程序的高級版,我已經發布了免費的精簡版。我想要將Lite版本中的數據轉移到Premium版本,或者讓兩個版本都訪問同一個數據庫。 Android, two apps one database?幫助回答了以後如何做。如果數據庫是在Lite版本中創建的,那麼當用戶安裝Premium版本時會發生什麼?爲了保存數據,他們是否必須安裝Lite版本?另一方面,我可以在獨立於任一版本但仍然是沙盒的位置創建數據庫嗎?最終,我希望能夠允許用戶在安裝Premium版本後刪除Lite版本,但仍保留所有數據。我該怎麼做呢?或者,我堅持讓我的用戶在升級到Premium版本後仍能安裝這兩個版本?從兩個不同的應用程序訪問數據庫

+1

您可以擁有它,以便在優先版本首次運行時檢查免費應用程序的內容提供商是否存在。如果找到了,那麼它會將整個內容複製到Premium應用程序中存儲的內容中。然後,高級應用程序只是訪問自己的提供者,而不是免費的。唯一棘手的事情是,如果由於某種原因用戶回到使用免費應用程序,高級版本不會得到他們所做的任何更改,但是您可以通過在免費應用程序中檢測這種情況來處理,並通知用戶或詢問他們是否打算打開付費應用程序。 – cottonBallPaws

+0

您是否有興趣將數據放在應用程序外部的共享位置?如果是這樣,我可以描述這個選項。 – ryan1234

+0

@ ryan1234這聽起來像我在找什麼。不過,我仍然希望數據只能通過我的應用程序或通過ContentProvider訪問。我寧願不將數據放在任何人都可以訪問的共享位置。 –

回答

1

我會建議至少看看CouchDB託管數據。您將數據創建爲文檔(使用JSON),然後創建包含文檔的數據庫。

此外,您可以創建您的數據的意見 - http://wiki.apache.org/couchdb/HTTP_view_API。您可以將參數傳遞到視圖以過濾數據等。

您可以使用Cloudant(https://cloudant.com/)或IrisCouch(http://www.iriscouch.com/)創建示例CouchDB。我知道Cloudant支持HTTP認證,這樣就可以使所有的調用看起來像這樣從Android設備:

http://user:[email protected]/database

另一種方法是看其TouchDB處理來自CouchDB的爲你複製。 https://github.com/couchbaselabs/TouchDB-Android請記住,這個項目現在有點落後,所以我認爲它不是生產準備好的,但今年他們將重點放在了它上面,所以它應該很快就會出現。

只是一個選項,用於通過身份驗證建立共享數據庫。然後,您可以託管相同的數據,並將精簡版與高級版內容嚴格保留在用戶界面中。

+0

謝謝你的建議。目前,我想保持簡單,所以更喜歡將數據本地存儲在設備上的解決方案。我想將配置添加到將來的版本中,以便用戶可以指定存儲位置,因此我會將此作爲一個選項記住。 –

相關問題