现在的位置: 首页 > 综合 > 正文

解决插件apk获取metaData

2018年01月17日 ⁄ 综合 ⁄ 共 605字 ⁄ 字号 评论关闭

插件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);

抱歉!评论已关闭.