获取一个apk文件的包名

来源:互联网 发布:软件测试流程五个阶段 编辑:程序博客网 时间:2024/05/09 08:29

1,关键代码

    //获取一个apk文件的包名,apkFilepath是apk文件的完整路径    private static  String getPackageFromAPK(Context context,String apkFilepath) {        try {            Log.i(tag, "获取一个apk文件的包名  "+apkFilepath);            PackageManager packageManager = context.getPackageManager();            PackageInfo info =null;              info =packageManager.getPackageArchiveInfo(apkFilepath, PackageManager.GET_ACTIVITIES);                if(info == null){                  info =packageManager.getPackageArchiveInfo(apkFilepath,  PackageManager.GET_SERVICES);                }              if(info == null){                  info = packageManager.getPackageArchiveInfo(apkFilepath, 0);              }            if(info == null){                  return null;            }else {                ApplicationInfo appInfo = null;                appInfo = info.applicationInfo;                String packageName = appInfo.packageName;                Log.i( tag, "getPackageFromAPK APKpath:"+apkFilepath+";packageName:"+packageName);                if(packageName!=null&&packageName.length()>0){                    return packageName;                }            }        } catch (Exception e) {            e.printStackTrace();        }        //TODO 如果获取包名失败怎么办嘛        return null;    }

2,是否需要修改权限
apk文件从asset拷贝到data/data/your.packages.names/files/apkfilename.apk下;不需要修改apk的权限就可以获取对应的包名(ls -l查看的时候发现权限为-rw——-);
但是如果要调用系统安装程序来安装这个apk,那么需要对应的权限为允许安装,简单点就是chomd 755

0 0
原创粉丝点击