解决插件apk获取metaData


插件apk没有真正加载到android系统中,因此插件apk代码调用了获取metadata时就会出现PackageName not found 异常的情况;

        要解决问题,先看下代码是如何调用的,比如以下调用

    ApplicationInfo appInfo = this.getPackageManager()
                                  .getApplicationInfo(getPackageName(), 
                          PackageManager.GET_META_DATA);
    String msg=appInfo.metaData.getString("myMsg");
    System.out.println("myMsg:"+msg);
通过getPackageManage接口来获取包管理,然后再找application的metadata。因此,通过覆盖系统的PackageManage,在getPackageManage()返回自己的继承PackageManage新的类。继承类重写方法getapplicationInfo判断包名是插件的apk包名时,就用系统PackageManage解析插件apk的metadata,然后再返回applicationInfo。代码如下:

this.getPackageManager().getPackageArchiveInfo(xxx/xxxx.apk, PackageManager.GET_META_DATA);



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值