Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多个Android应用程序中使用相同的sqlite数据库_Android_Sqlite_Android Contentprovider - Fatal编程技术网

在多个Android应用程序中使用相同的sqlite数据库

在多个Android应用程序中使用相同的sqlite数据库,android,sqlite,android-contentprovider,Android,Sqlite,Android Contentprovider,我有一套4个应用程序,它们都需要一个通用数据库。用户可以先使用任何应用程序,该应用程序将创建sqlite数据库 我想我可以使用SQLiteOpenHelper中的完整路径在特定文件夹中创建数据库,也许我可以在特定路径中创建数据库并使所有应用程序使用此数据库,但数据将失去安全性 我检查了一些答案,其中建议使用ContentProvider或sharedUserId,但示例适用于应用程序希望共享其数据的场景,在这种情况下,是所有应用程序的公共数据库,在这种场景中,我如何使用ContentProvid

我有一套4个应用程序,它们都需要一个通用数据库。用户可以先使用任何应用程序,该应用程序将创建sqlite数据库

我想我可以使用
SQLiteOpenHelper
中的完整路径在特定文件夹中创建数据库,也许我可以在特定路径中创建数据库并使所有应用程序使用此数据库,但数据将失去安全性

我检查了一些答案,其中建议使用
ContentProvider
sharedUserId
,但示例适用于应用程序希望共享其数据的场景,在这种情况下,是所有应用程序的公共数据库,在这种场景中,我如何使用
ContentProvider


实现这一目标的好方法是什么

最好的方法是在一个应用程序中使用ContentProvider,在其他应用程序中使用URI。就目前而言,这是在多个应用程序中“共享”数据库的唯一方法。

最好的方法是在一个应用程序中使用ContentProvider,在其他应用程序中使用URI。就目前而言,这是在多个应用程序中“共享”数据库的唯一方法。

我们已经构建了一个适当的系统,其中有许多应用程序访问同一数据库,我们使用
ContentProvider
实现了这一点。我想这是一条路。
ContentProvider
的示例是相同的:共享其数据的应用程序与所有应用程序的数据库是相同的。感谢您的评论,@m0skit0您的案例非常相似,听起来ContentProvider是一个不错的选择,但我不知道哪个应用程序会创建数据库,我的想法是“用户打开的第一个应用程序创建数据库“,也许我需要只有一个特定的应用程序创建数据库,并引导用户在使用所有应用程序之前打开该应用程序。好的,我明白了。我认为应该在你的所有应用程序中加入
ContentProvider
。当应用程序运行时,它会检查
ContentProvider
是否存在。如果有,它就用那个。如果没有,它将设置并公开它。使用这种方法我能想到的唯一问题是,您可能无法在清单中声明
ContentProvider
。在我们的情况下,因为我们拥有这个系统,我们有一个专用的
服务
,它有
内容提供者
,所有其他应用程序都依赖这个
服务
。我明白了,我会尝试类似的方法。谢谢你的评论。我们已经建立了一个适当的系统,有很多应用程序访问同一个数据库,我们使用
ContentProvider
。我想这是一条路。
ContentProvider
的示例是相同的:共享其数据的应用程序与所有应用程序的数据库是相同的。感谢您的评论,@m0skit0您的案例非常相似,听起来ContentProvider是一个不错的选择,但我不知道哪个应用程序会创建数据库,我的想法是“用户打开的第一个应用程序创建数据库“,也许我需要只有一个特定的应用程序创建数据库,并引导用户在使用所有应用程序之前打开该应用程序。好的,我明白了。我认为应该在你的所有应用程序中加入
ContentProvider
。当应用程序运行时,它会检查
ContentProvider
是否存在。如果有,它就用那个。如果没有,它将设置并公开它。使用这种方法我能想到的唯一问题是,您可能无法在清单中声明
ContentProvider
。在我们的情况下,因为我们拥有这个系统,我们有一个专用的
服务
,它有
内容提供者
,所有其他应用程序都依赖这个
服务
。我明白了,我会尝试类似的方法。谢谢你的评论。