2011-09-21 38 views
0

我讀了this question,想知道是否同樣適用於我的情況。運行不同應用程序的兩個Android設備是否可以使用相同的SQLite數據庫?

我想要寫從Android電話accelerometer值(XÿŽ)到database並與另一應用程序檢索它上的平板設備顯示隨時間變化的值的曲線圖。這不必實時發生。

所以基本上我的問題是:

1)可以在兩個不同的Android設備兩個不同的應用程序使用同一個數據庫SQLite

2)我怎麼指定IP使手機上的一個應用程序寫入到一個指定的數據庫和平板電腦上的其他應用程序從同一指定的數據庫讀取?

我已經可以讀取Accelerometer的值,並且我知道如何創建圖表,但我遇到了項目的數據庫組件問題,因爲我遇到的所有內容似乎都將值存儲在設備的SD card或只有設備本身才能訪問的數據庫,並且沒有其他應用程序或設備。

我讀過有關通過首先獲得ContentResolver指定static IP

ContentResolver cr = getContentResolver(); 

然後適應settings

Settings.System.putString(cr, Settings.System.WIFI_USE_STATIC_IP, "1"); 
Settings.System.putString(cr, Settings.System.WIFI_STATIC_IP, "6.6.6.6"); 

,然後使permissionsWRITE_SETTINGSWRITE_SECURE_SETTINGS

但我不確定在哪裏寫這個或如何正確使用它。

請指導我到哪裏可以找到關於設置SQLite數據庫以及如何在兩個不同的Android設備上使用兩種不同應用程序的更多信息?

預先感謝您。

P.S.我會盡快用我的一些代碼更新這個問題。

+0

當您避免使用網絡設置時,請不要混淆網絡設置,否則您的用戶會討厭您 - 要麼1)當您的應用在平板電腦上啓動並在手機應用中要求時顯示IP地址,或者2)通過[JmDNS](http://jmdns.sourceforge.net/)使用完全自動化的東西,如零配置網絡(http://jmdns.sourceforge.net/)(更多作品) –

回答

4

可以在兩個不同的Android設備上使用兩個不同的應用程序使用相同的SQLite數據庫嗎?

運行在兩個不同大洲的兩臺Web服務器不能使用同一個MySQL數據庫。只有在文件系統訪問文件的設備上運行的進程才能讀取和寫入該文件。

如何指定IP以便手機上的一個應用程序寫入指定數據庫,而平板電腦上的另一個應用程序是否從該指定數據庫讀取數據?

你不知道。 Android不是一個服務器平臺。

最好的情況是,如果兩個設備都在同一個WiFi LAN上,並且您編寫的Web服務可以從一個設備公開數據庫,那麼最好還是可以將其關閉。這當然會讓您遇到與Web服務器相同的安全問題,而沒有防火牆等優勢。

我想從Android手機寫入加速度計值(x,y和z)到數據庫,並使用平板電腦上的另一個應用程序檢索它以顯示隨時間變化的值的圖形。這不必實時發生。

因此,您不需要兩個設備來訪問同一個數據庫。您需要他們與相同的數據

因此,您可以讓手機通過Web服務將數據發送到某個服務器,並讓平板電腦通過Web服務從該服務器檢索數據。

或者,讓手機通過藍牙將數據發送到平板電腦。

或者,如果您覺得安全性足夠,請讓平板電腦通過手機使用的WiFi公開Web服務(儘管這真的讓我感到恐慌,尤其是在平板電腦可能加入某個其他網絡時(例如通過移動) 。

既不是手機也不是平板電腦,即使也有數據庫,更不用說試着直接分享它。

+0

同意這一點,並準備類似的答案。至於平板電腦暴露的Web服務,值得看看[nanohttpd] [1],有一個例子如何進行子類化和定製。 –

+0

好的非常感謝你。我跟一個和我一起工作的人談過,他提出了類似的建議。他說我應該將手機的數據值寫入xml文件,然後通過email/bluetooth/ftp將xml文件發送到平板電腦。平板電腦可以簡單地使用該文件來創建結果圖。這不需要數據庫和兩臺設備共享一個數據庫信息的任何問題。謝謝您的回覆。 – marienke

0

SQlite數據庫對創建它的應用程序是私有的。如果您想與其他應用程序共享數據,則可以使用Content Provider。

相關問題