使用@string for android:ContentProvider中的权限

我的清单中有一个ContentProvider,当我使用硬编码字符串完全定义它时,它可以工作。例如。

<provider android:name="com.myprovider" android:authorities="com.myprovider"/>

工作完美,但是ContentProviders在一个被多个项目使用的库中,我不想要权限冲突,所以我尝试执行以下操作。

<provider android:name="com.myprovider" android:authorities="@string/myProviderAuthority">

这样我应该能够在一个单一的strings.xml文件中定义所有的权限,并且在应用程序之间没有冲突,因为我可以使用每个应用程序资源覆盖系统进行更改。

然而,似乎当我尝试使用@string构建它,它给我一个格式错误的显示错误,并说“提供者不INCUDE(是的说INCUDE)当局赞扬”

我不能使用资源字符串为当局的致敬,每当我需要维护两个位置的常数,我感到恶心。权责冲突可能难以被我们的质量保证部门抓住,我不希望事情变得不一致,否则可能导致混乱。任何人都有任何想法为什么我的代码不工作?

我遇到类似的问题,但是使用android:versionCode属性。当我试图在资源中定义版本代码,并在清单Android Market中引用它,甚至禁止我发布应用程序。这种行为的原因证明是相当简单的。资源可以根据当前配置而改变,并且在任何情况下该值必须相同。

也许这就是为什么具有权限参考的内容提供商不起作用的原因。在我看来,使用这样的参考并不是一个好主意,因为不能保证应用程序中的权限资源只有一个值。我明白,您可以小心地保留此资源的单个实例,但是没有特殊的编译器或系统检查,因此不能被信任。

http://stackoverflow.com/questions/6461776/using-string-for-androidauthorities-in-a-contentprovider

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:使用@string for android:ContentProvider中的权限