运行不同应用程序的两个Android设备可以使用相同的SQLite数据库吗?

时间:2011-09-21 12:45:53

标签: android database sqlite static-ip-address data-sharing

我读了this question并想知道这是否适用于我的情况。

我想从accelerometer手机写入Android值( x y z 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。我很快就会用一些代码更新这个问题。

2 个答案:

答案 0 :(得分:4)

  

两个不同的Android设备上的两个不同的应用程序可以使用相同的SQLite数据库吗?

在两个不同大洲上运行的Web服务器不能超过两个,可以使用相同的MySQL数据库。只有在具有文件系统访问权限的设备上运行的进程才能读取和写入该文件。

  

如何指定IP以便手机上的一个应用程序写入指定的数据库而平板电脑上的另一个应用程序从同一个指定的数据库中读取?

你没有。 Android不是服务器平台。

最好的情况是,如果两个设备位于同一个WiFi LAN上,并且您编写了一个从一个设备公开数据库的Web服务,则可以将其关闭。当然,这会让您面临与Web服务器相同的安全问题,而不会受到防火墙等的影响。

  

我想将Android手机的加速度计值(x,y和z)写入数据库,并使用平板电脑上的其他应用程序检索它,以显示随时间变化的值的图表。这不一定是实时发生的。

因此,您不需要两个设备来访问同一个数据库。您需要它们使用相同的数据

因此,您可以让手机通过Web服务将数据发送到某个服务器,让平板电脑通过Web服务从该服务器检索数据。

或者,让手机通过蓝牙将数据发送到平板电脑。

或者,如果您觉得安全性足够,让平板电脑通过手机使用的WiFi公开Web服务(虽然这真的让我感到害怕,特别是如果平板电脑可能加入其他网络,例如被移动)。

在这两种情况下,手机和平板电脑都不一定拥有数据库,更不用说尝试直接共享它了。

答案 1 :(得分:0)

SQlite数据库是创建它的应用程序的私有数据库。如果您想与其他应用程序共享数据,可以使用内容提供商。