gpt4 book ai didi

java - 动态设置一个ContentProvider的权限

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:07:07 26 4
gpt4 key购买 nike

也许标题有点误导。我的问题是我有一个 Android 库项目,它在两个标准 Android 项目之间共享:一个用于应用程序的免费版本,另一个用于付费版本。该库目前有一个 ContentProvider 的代码,包括一个带有几个静态字符串变量的契约(Contract)类,用于 URI 和列名等内容。现在我希望 URI 的“权限”根据正在使用该库的应用程序进行更改。想到的一种解决方案是将权限存储为字符串资源,并在运行时将该字符串加载到静态最终字符串变量中。但是,我不确定如何执行此操作,因为契约(Contract)类有一个私有(private)构造函数并且没有 Context 对象来加载字符串资源。还有哪些其他选项可以解决我的问题?

最佳答案

对于那些使用较新版本构建工具的人来说,这是一个更好的解决方案:使权限与您的应用程序 ID 相关。您可以使用 ${applicationId} 自动执行此操作,它会在构建过程中扩展为您应用的应用程序 ID。

<provider
android:name=".MyContentProvider"
android:authorities="${applicationId}.provider"/>

假设您的应用程序 ID 是 com.example.app.paidcom.example.app.free。当您构建您的应用程序时,权限将相应地变为 com.example.app.paid.providercom.example.app.free.provider

要在您的代码中引用提供者权限,请使用 BuildConfig.APPLICATION_ID + ".provider"

关于java - 动态设置一个ContentProvider的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16268119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com