利用meta-data的数据,动态更改contetnprovider的authorities
因为业务需要,做个库给应用使用,需要动态的给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相关推荐
- backtrader利用小时间粒度数据动态合成大时间粒度数据:replay功能
扫地僧backtrader技术教程获取方法 =========================== 看过我教程的同学都知道,backtrader中可以用重采样resample功能来将小粒度数据合成大粒 ...
- python动态图形_利用matplotlib实现根据实时数据动态更新图形
我就废话不多说了,直接上代码吧! from time import sleep from threading importThread import numpy as np import matplo ...
- 微信小程序 data中数据值的更改与储存
微信小程序 data中数据值的更改与储存 this.setData this.setData 直接更改 success(res){this.setData({list:res.data.data}) ...
- Java技术:实现pdf和Excel的生成及数据动态插入、导出
1 序言 Excel.PDF的导出.导入是我们工作中经常遇到的一个问题,刚好今天公司业务遇到了这个问题,顺便记个笔记以防下次遇到相同的问题而束手无策. 公司有这么两个需求: 需求一.给了一个表单,让把 ...
- Vue.set()实现数据动态响应
2019独角兽企业重金招聘Python工程师标准>>> this.$set()和Vue.set()本质方法一样,前者可以用在methods中使用. 在vue里面,我们操作最多的就是各 ...
- 硬核!Java 实现数据动态插入,生成 PDF、EXECL,完美导出功能!
>>号外:关注"Java精选"公众号,回复"面试资料",免费领取资料!"Java精选面试题"小程序,3000+ 道面试题在线刷, ...
- Java实现pdf和Excel的生成及数据动态插入、导出
点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者:慢时光 cnblogs.com/Tom-shushu/ ...
- MITRE:利用微生物组时间序列数据推断与宿主状态变化相关的特征
文章目录 MITRE:利用微生物组时间序列数据推断与宿主状态变化相关的特征 热心肠日报 写在前面 主要结果 图1. MITRE通过对时间序列的微生物群落的系统发育信息进行学习,同宿主的状态改变联系起来 ...
- 【JS 逆向百例】某空气质量监测平台无限 debugger 以及数据动态加密分析
关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 逆向目标 写在前面 绕过无限 debugger 方法一 方法二 方法三 抓包分析 加密入口 动态 JS 本地改写 ...
最新文章
- 强化学习vs遗传算法-人工智能在模拟领域的应用
- 输入过欠压保护电路原理图
- 判断一个数列是不是搜索二叉树后续遍历输出的结果
- win7网站服务器空间怎么清理,win7如何清理c盘空间_win7磁盘空间不足怎么清理
- 《编译原理》实验报告——递归下降语法分析器的构建
- php模块下载,douphp下载中心模块修改版
- 【7】jQuery学习——入门jQuery选择器之过滤选择器-可见性过滤选择器
- 华为交换机CPU SNMP OID [简单整理]
- Oracle认证体系的重大变化,你需要知道这些...
- python 配置文件介绍
- ES6——let、const和var的用法和区别
- Flutter代码锦囊---集中管理路由与导航
- mysql行级锁unique_MySQL行级锁,表级锁,页级锁详解
- c语言山东科技大学答案oj,山东科技大学oj部分题目记答案.doc
- 实现.pb模型和.pbtxt模型之间的转换 python
- 【目标检测】YOLO系列总结
- iNode用户win10开热点手机连接时总显示获取IP中的解决方法
- 基于java的奖学金评定管理系统_基于java的奖学金评定系统
- 计算机英语解读,解释计算机Windows的学习英语
- 为什么我会这么多技术,还这么难找工作