因为业务需要,做个库给应用使用,需要动态的给contentprovider配置uri,于是便用到了meta和${applicationId},很方便的解决了问题,并且极大的方便了其他应用的使用。

1.在AndroidManifest里面配置meta

 <meta-data
    android:name="BFC_UPLOAD_HOST_APP_ID"
    android:value="${applicationId}" />
  ${applicationId}的作用就是用applicationId替代meta-data 的value的值
2.contentprovider配置
  
  <provider
    android:name="com.eebbk.bfc.uploadsdk.upload.provider.UploadProvider"
    android:authorities="${applicationId}.bbkupload"
    android:exported="true">
  应用使用的时候也不用配置contentprovider了
  示例如下:URI_MACHER.addURI(uri, "my_uploads", MY_UPLOADS);
    public static String getHostAppId(Context appContext) throws IllegalArgumentException {ApplicationInfo applicationInfo = null;try {applicationInfo = appContext.getPackageManager().getApplicationInfo(appContext.getPackageName(), PackageManager.GET_META_DATA);if(applicationInfo == null){throw new IllegalArgumentException(" get application info = null, has no meta data! ");}return applicationInfo.metaData.getString(Constants.BFC_UPLOADLOAD_HOST_APP_ID);} catch (PackageManager.NameNotFoundException e) {throw new IllegalArgumentException(" get application info error! ", e);}}
5.为packagename赋值,并获取uri动态的string:
    String packagename = applicationInfo ;
6.获取到authorties 的值后。我们便可以在contentprovider创建时配置到URI里面,
   String uri= TextUtils.concat(packagename , ".bbkupload").toString()
  </provider>
3.获取meta-data的值

利用meta-data的数据,动态更改contetnprovider的authorities相关推荐

  1. backtrader利用小时间粒度数据动态合成大时间粒度数据:replay功能

    扫地僧backtrader技术教程获取方法 =========================== 看过我教程的同学都知道,backtrader中可以用重采样resample功能来将小粒度数据合成大粒 ...

  2. python动态图形_利用matplotlib实现根据实时数据动态更新图形

    我就废话不多说了,直接上代码吧! from time import sleep from threading importThread import numpy as np import matplo ...

  3. 微信小程序 data中数据值的更改与储存

    微信小程序 data中数据值的更改与储存 this.setData this.setData 直接更改 success(res){this.setData({list:res.data.data}) ...

  4. Java技术:实现pdf和Excel的生成及数据动态插入、导出

    1 序言 Excel.PDF的导出.导入是我们工作中经常遇到的一个问题,刚好今天公司业务遇到了这个问题,顺便记个笔记以防下次遇到相同的问题而束手无策. 公司有这么两个需求: 需求一.给了一个表单,让把 ...

  5. Vue.set()实现数据动态响应

    2019独角兽企业重金招聘Python工程师标准>>> this.$set()和Vue.set()本质方法一样,前者可以用在methods中使用. 在vue里面,我们操作最多的就是各 ...

  6. 硬核!Java 实现数据动态插入,生成 PDF、EXECL,完美导出功能!

    >>号外:关注"Java精选"公众号,回复"面试资料",免费领取资料!"Java精选面试题"小程序,3000+ 道面试题在线刷, ...

  7. Java实现pdf和Excel的生成及数据动态插入、导出

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者:慢时光 cnblogs.com/Tom-shushu/ ...

  8. MITRE:利用微生物组时间序列数据推断与宿主状态变化相关的特征

    文章目录 MITRE:利用微生物组时间序列数据推断与宿主状态变化相关的特征 热心肠日报 写在前面 主要结果 图1. MITRE通过对时间序列的微生物群落的系统发育信息进行学习,同宿主的状态改变联系起来 ...

  9. 【JS 逆向百例】某空气质量监测平台无限 debugger 以及数据动态加密分析

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 逆向目标 写在前面 绕过无限 debugger 方法一 方法二 方法三 抓包分析 加密入口 动态 JS 本地改写 ...

最新文章

  1. WSDM 2022 | 中科院、腾讯、北航提出:跨领域推荐中的个性化迁移用户兴趣偏好...
  2. Mcad学习笔记之序列化(2进制和Soap序列化)
  3. android-数据库SQLite相关
  4. 想做测试经理的看过来
  5. c语言小程序hello,【北北的小程序】北のC语言第一课:helloworld
  6. IBASE write buffer
  7. thinkphp与php共享session
  8. python 预测算法_Python 与金融数据使用机器学习算法预测交易策略
  9. C#LeetCode刷题之#190-颠倒二进制位(Reverse Bits)
  10. ngnix学习(二)ngnix常用命令
  11. python盖帽法_干货:用Python进行数据清洗,这7种方法你一定要掌握
  12. 微信养鸡领鸡蛋小程序源码
  13. 如何在没有原工程的情况下,利用vivado将bit文件转化成bin文件
  14. 阿里巴巴实习面试经历
  15. JavaScript - canvas - 使用鼠标画线,带撤销与重做功能
  16. 详解 0xff 的作用
  17. 之江汇空间如何加音乐背景_如何给空间添加背景音乐
  18. Dart Isolate
  19. 软件工程-第三章 软件需求分析1
  20. 海思hi3716c机顶盒接usb摄像头和usb无线耳机时,无线耳机有时没有声音

热门文章

  1. 全球网络加速的五个方法
  2. 计算机所王颖简历,王颖-天津大学材料科学与工程学院
  3. amlogic平台,给LatinIME输入法添加语言
  4. 哈工大 大数据算法 频度矩估计-Final AMS 算法
  5. 3 Spark机器学习 spark MLlib 矩阵向量、矩阵运算Breeze库-2
  6. Spring 日志文档翻译
  7. 一个简单实用的SSAO实现
  8. python自动登录百度_python实现自动登录百度账号功能代码
  9. Oracle11g 审计介绍
  10. 《码农讽老板纳谏》马农修八尺有余,而形貌昳丽···