获取手机中所有已经安装的应用的包名很简单,这里不再赘述,下面我们要说的是获取手机里所有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,就是这么简单
网友评论