Android SDCard操作-1
privatestaticintINSTALLED=0;//表示已经安装,且跟现在这个apk文件是一个版本
privatestaticintUNINSTALLED=1;//表示未安装
privatestaticintINSTALLED_UPDATE=2;//表示已经安装,版本比现在这个版本要低,可以点击按钮更新
privateContextcontext;
privateList<MyFile>myFiles=newArrayList<MyFile>();
publicList<MyFile>getMyFiles()
{
returnmyFiles;
}
publicvoidsetMyFiles(List<MyFile>myFiles)
{
this.myFiles=myFiles;
}
publicApkSearchUtils(Contextcontext)
{
super();
this.context=context;
}
/**
*@paramargs
*运用递归的思想,递归去找每个目录下面的apk文件
*Filefile
*/
publicvoidFindAllAPKFile(Filefile)
{
//手机上的文件,目前只判断SD卡上的APK文件
//file=Environment.getDataDirectory();
//SD卡上的文件目录
if(file.isFile())
{
CommonUtil.log("-------------------------------");
Stringname_s=file.getName();
MyFilemyFile=newMyFile();
Stringapk_path=null;
//MimeTypeMap.getSingleton()
if(name_s.toLowerCase().endsWith(".apk"))
{
apk_path=file.getAbsolutePath();//apk文件的绝对路劲
//System.out.println("----"+file.getAbsolutePath()+""+
//name_s);
PackageManagerpm=context.getPackageManager();
PackageInfopackageInfo=pm.getPackageArchiveInfo(apk_path,
PackageManager.GET_ACTIVITIES);
ApplicationInfoappInfo=packageInfo.applicationInfo;
/**获取apk的图标*/
appInfo.sourceDir=apk_path;
appInfo.publicSourceDir=apk_path;
Drawableapk_icon=appInfo.loadIcon(pm);
myFile.setApk_icon(apk_icon);
/**得到包名*/
StringpackageName=packageInfo.packageName;
myFile.setPackageName(packageName);
/**得到apk名*/
StringappName=packageInfo.applicationInfo.loadLabel(pm)
.toString();
myFile.setAppName(appName);
/**apk的绝对路劲*/
myFile.setFilePath(file.getAbsolutePath());
/**apk的版本名称String*/
StringversionName=packageInfo.versionName;
myFile.setVersionName(versionName);
/**apk的版本号码int*/
intversionCode=packageInfo.versionCode;
myFile.setVersionCode(versionCode);
/**安装处理类型*/
inttype=doType(pm,packageName,versionCode);
myFile.setInstalled(type);
Log.i("ok","处理类型:"+String.valueOf(type)+"\n"
+"------------------我是纯洁的分割线-------------------");
myFiles.add(myFile);
}
//Stringapk_app=name_s.substring(name_s.lastIndexOf("."));
}
else
{
File[]files=file.listFiles();
if(files!=null&&files.length>0)
{
for(Filefile_str:files)
{
FindAllAPKFile(file_str);
}
}
}
}
相关推荐
adb shell cd system/app rm *.apk21. 获取管理员权限: adb root22. 启动Activity: adb shell am start -n 包名/包名+类名。