获取手机中所有apk文件的包名

作者: 选一个昵称这么难 | 来源:发表于2017-09-12 17:51 被阅读470次

    获取手机中所有已经安装的应用的包名很简单,这里不再赘述,下面我们要说的是获取手机里所有apk文件的包名,这个apk文件可能是未安装的
    步骤一:获取手机里所有的apk文件

    private List<String> list = new ArrayList<>();
    //用到了递归
    //这个参数我使用的时候传递的是Environment.getExternalStorageDirectory().getAbsolutePath()
    public  void getApkName(String path) {
            File file = new File(path);
            if (file.isDirectory()) {
                File[] dirFile = file.listFiles();
                for (File f : dirFile) {
                    if (f.isDirectory())
                        getApkName(f.getAbsolutePath());
                    else {
                        if (f.getName().endsWith(".apk"))
                            list.add(f.getAbsolutePath());
                    }
                }
            }
        }
    

    步骤二:根据apk文件的路径获取其包名

    public String getPackageName(String apkPath){
            PackageManager pm = getPackageManager();
            PackageInfo info = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);
            if (info != null){
                //既然获取了ApplicationInfo,那么和应用相关的一些信息就都可以获取了,具体可以获取什么大家可以看看ApplicationInfo这个类
                ApplicationInfo appInfo = info.applicationInfo;
                return appInfo.packageName;
            }
            return "";
        }
    

    注意添加访问存储的权限
    ok,就是这么简单

    相关文章

      网友评论

        本文标题:获取手机中所有apk文件的包名

        本文链接:https://www.haomeiwen.com/subject/ccthsxtx.html