
目标
能够为我的库fileProvIDer为应用程序的每个变体定义唯一的权限.
第一种方法
我将一个随机的int附加到权限,工作得很好.
的build.gradle
static def generateContentProvIDerAuthority() { Random random = new Random() return new StringBuilder() .append("application.ID.of.my.library") .append(".fileprovIDer") .append(String.valueOf(random.nextInt(100000))) .toString()}defaultConfig { ... manifestPlaceholders= [contentProvIDerAuthority: generateContentProvIDerAuthority()]} 表现
<provIDer androID:name=".helper.fileProvIDer" androID:authoritIEs="${contentProvIDerAuthority}" androID:exported="false" androID:grantUriPermissions="true"> <Meta-data androID:name="androID.support.file_PROVIDER_PATHS" androID:resource="@xml/filepaths"/></provIDer> 但是现在,清单会改变每一个版本,这些版本会因即时运行而变得混乱……
解
是否有可能获得在我的库build.gradle中使用库的应用程序的确切applicationID?
解决方法 正如CommonsWare在评论中提到的那样,在权限部分使用动态${applicationID}就足够了.<provIDer androID:name=".ScreenshotfileProvIDer" androID:authoritIEs="${applicationID}.library.name.screenshots" androID:exported="false" androID:grantUriPermissions="true"> <Meta-data androID:name="androID.support.file_PROVIDER_PATHS" androID:resource="@xml/file_provIDer_paths"/></provIDer> 在CommonsWare的博客上有更详尽的解释:
https://commonsware.com/blog/2017/06/27/fileprovider-libraries.html
以上是内存溢出为你收集整理的android库项目中的FileProvider权限全部内容,希望文章能够帮你解决android库项目中的FileProvider权限所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)