利用meta-data的数据,动态更改contetnprovider的authorities
2016-12-15 23:02
1571 查看
因为业务需要,做个库给应用使用,需要动态的给contentprovider配置uri,于是便用到了meta和${applicationId},很方便的解决了问题,并且极大的方便了其他应用的使用。
1.在AndroidManifest里面配置meta
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">
</provider>3.获取meta-data的值
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 ;
String uri= TextUtils.concat(packagename , ".bbkupload").toString()6.获取到authorties 的值后。我们便可以在contentprovider创建时配置到URI里面,
应用使用的时候也不用配置contentprovider了
示例如下:URI_MACHER.addURI(uri, "my_uploads", MY_UPLOADS);
相关文章推荐
- Effective C# 学习笔记(四十一)使利用DynamicObject或IDynamicMetaObjectProvider接口实现数据驱动的动态类型
- AS中更改DataGrid的DataProvider数据模型的刷新问题
- 数组数据采用ArrayDataProvider 动态分页应用(可用于接口缓存场景) [ 2.0 版本 ]
- 利用data-*动态显示数据(attr()\calc())
- 解决multipart/form-data表单中传递参数问题(动态更改表单提交URL)
- web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题
- 在ASP.NET 2.0中利用DataFormatString格式化数据时
- 利用userData实现客户端保存表单数据
- ASP.NET Futures初探——动态数据控件(Dynamic Data Control)
- 同一张表内、利用变化的上一行数据动态地修改下一行数据(示例Demo)
- 利用userData实现客户端保存表单数据
- 利用DbProviderFactory实现数据操作跨数据库数据操作类.
- Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定之二:使用外部URL的XML文件)
- 利用PB动态创建数据窗口
- 利用userData实现客户端保存表单数据
- 答静静:动态更改水晶报表部分数据的背景颜色(VB.Net)
- 怎样利用PowerBulider的Datawindow建立中国式的动态报表
- Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定)
- web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题
- 利用TreeView控件 从数据库中动态载入数据