获取手机中所有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