一个android库项目包含一些提供程序,其权限在合同类中定义如下:
public static final String CONTENT_AUTHORITY = "my.com.library.providers.tester";
private static final Uri BASE_CONTENT_URI = Uri.parse("content://" + CONTENT_AUTHORITY);
Run Code Online (Sandbox Code Playgroud)
现在有很多应用程序项目使用这个库项目.我目前面临的问题是,对于每个应用程序项目,我需要在库项目中为每个应用程序设置一个单独的分支,以便拥有唯一的内容权限.这会产生一些版本管理问题(例如将功能/错误修复从一个分支传播到每个其他分支等).相反,我想将定义内容权限的责任委托给app项目.有没有办法实现这个目标?
java android authority android-contentprovider android-library
也许标题有点误导.我的问题是我有一个Android库项目,它在两个标准的Android项目之间共享:一个用于免费版本的应用程序,另一个用于付费版本.该库目前具有ContentProvider的代码,包括具有多个静态String变量的契约类,例如URI和列名称.现在我希望URI的"权限"根据使用该库的应用程序而改变.想到的一个解决方案是将权限存储为字符串资源,并在运行时将该字符串加载到静态最终String变量中.但是,我不知道如何做到这一点,因为契约类有一个私有构造函数而没有Context对象来加载字符串资源.还有哪些其他选项可以解决我的问题?