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);

}

}

}

}

apk

相关推荐