【发布时间】:2012-03-29 14:16:50
【问题描述】:
我想在两个应用程序之间共享一些图像图标。我将图标存储在应用程序 1 的文件夹中,并尝试使用应用程序 2 的文件夹。那时我遇到了一些权限问题。我也无法添加权限,因为它不是根设备。
所以我现在尝试将图标存储在内容提供程序中。是否可以将图像存储在内容提供者中?有没有其他好的方法来实现这个?请帮忙。
【问题讨论】:
标签: android android-contentprovider
我想在两个应用程序之间共享一些图像图标。我将图标存储在应用程序 1 的文件夹中,并尝试使用应用程序 2 的文件夹。那时我遇到了一些权限问题。我也无法添加权限,因为它不是根设备。
所以我现在尝试将图标存储在内容提供程序中。是否可以将图像存储在内容提供者中?有没有其他好的方法来实现这个?请帮忙。
【问题讨论】:
标签: android android-contentprovider
ContentProviders 不用于存储。它们用于基于权限从不同应用程序组件、不同应用程序或两者都访问数据库的公共接口。
您可以做的是将图像作为二进制数据集 (BLOB) 存储在数据库中。然后使用具有公共权限的内容提供者来查询图像并将新图像添加到数据库中。但是,如果您只是想存储应用程序图标,则应该使用 res 文件夹在每个项目中拥有这些图标。如果不需要,请不要与 SDK 对抗。
希望这将为您指明正确的方向。查看 Android 的 ContentResolver 和 ContentProvider API 了解更多信息。
【讨论】:
如果您将 App1 上的图标存储为资源(可绘制对象),您可以通过使用包名称并知道资源 ID 或名称来访问它们(因为它是您自己的应用程序,我假设您知道这些 ;-))
看看PackageManager.getResourcesForApplication。 要按名称访问资源,您可以使用Resources.getIdentifier。
【讨论】: