内容提供商和图像存储

时间:2012-03-29 05:25:28

标签: android android-contentprovider

我想在两个应用程序之间共享一些图像图标。我将图标存储在应用程序1的文件夹中,并尝试使用应用程序2中的文件夹。那时我得到了一些权限问题。我也无法添加权限,因为它不是root设备。

所以我现在正试图将图标存储在内容提供商中。是否可以将图像存储在内容提供商中?有没有其他好方法来实现这个?请帮忙。

2 个答案:

答案 0 :(得分:2)

ContentProviders不用于存储。它们用于基于权限从不同应用程序组件,不同应用程序或两者进行数据库访问的公共接口。

您可以做的是将图像存储为数据库中的二进制数据集(BLOB)。然后使用具有公共权限的内容提供程序来查询映像并将新映像添加到数据库。但是,如果您只是想存储应用程序图标,则应该使用res文件夹在每个项目中使用这些图标。如果您不需要,请不要与SDK对抗。

希望这会指出你正确的方向。查看Android的ContentResolver和ContentProvider API以获取更多信息。

答案 1 :(得分:0)

如果您将App1上的图标存储为资源(drawables),您只需使用包名称并知道资源ID或名称即可访问它们(因为它是您自己的应用程序我假设您知道这些; - ))

看看PackageManager.getResourcesForApplication。 要按名称访问资源,您可以使用Resources.getIdentifier